Zum Inhalt springen

.Xls nach CSV automatisch umwandeln


tikal

Empfohlene Beiträge

Gute Morgen wünsch ich euch!

Ich habe ein Problem und zwar würde ich gerne gewissen Zeilen (immer nur eine Zeile a 3 Spalten also jeweils 3 Felder pro Dokument) aus Excel Mappen auslesen lassen und als CSV exportieren.

Das soll natürlich automatisch (einmal täglich) passieren und anschließend möchte ich die Informationen in eine MYSQL Datenbank einlesen mithilfe von LOAD DATA LOCAL INFILE.....

Mein Problem ist jetzt wie ich das am besten umwandeln lassen kann, bzw wie ich es hinbekomme das nur ein bestimmter bereich exportiert wird (geht das überhaupt?). In allen Dateien stehen die Informationen die ich brauche an der gleichen Stelle.

Und welche Form sollte die CSV Datei haben damit man sie optimal einlesen kann?

Danke für eure Hilfe im vorraus!

Gruß

Tikal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

meines Wissens speichert Excel immer die komplette Datei. Also muss mittels VBA oder so eine neue Datei erstellt werden, aus der alten die Bereiche markieren und in der neuen einfügen und anschließend die neue als CSV Datei speichern.

Vielleicht ist das eine Alternative.

t-error.ch - Excel Dateien mit dem PHP-ExcelReader lesen

SourceForge.net: PHP-ExcelReader: Files

Frank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hey vielen Dank für die schnelle Antwort!

Ja mit dem Php Reader hab ich es schon versucht. Allerdings weiß ich nicht wie ich mir damit spezielle Zellen ausgeben lassen kann (standardmäßig zeigt der ja nur größe und Spaltenüberschriten an).

Oder kennst du eine möglichkeit wie man eine Excel-Mappe dazu bringt sich automatisch zu öffnen die Verknüpfungen zu aktualisieren und sich wieder zu schließen?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mhh. Die Exaplmes habe ich beide nicht ans laufen bekommen.

Da kommt bei mir immer ein Speicherfehler (also das der gesetzte Speicher überschritten wurde) und auch eine Erhöhung mit ini_set("memory_limit","10M"); oder höher hat nicht geholfen.

Meine eigene Datei funktioniert aber und zeigt zb an:

Arbeitsblatt 1: Tabelle1

hat: 2 Zeilen und 4 Spalten.

Spaltenueberschriften:

1 : 2 : 3 : 4 : Arbeitsblatt 2: Tabelle2

hat: 0 Zeilen und 0 Spalten.

Spaltenueberschriften:

Arbeitsblatt 3: Tabelle3

hat: 0 Zeilen und 0 Spalten.

Hierbei habe ich eine ähnliche Datei wie du genommen!

Also 1 2 ....

Wenn ich es mit

echo "($data->sheets[0]['cells'][2][1])";	

mache kommt als ausgabe:

[0]['cells'][2][1]

Hast du eine Idee? Ich steh nämlich irgendwie auf dem Schlauch :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

	echo "<hr>";
ini_set('memory_limit', '10M');

// Excel Reader einbinden
require_once("excel/reader.php");

// Objekt erstellen, Encoding definieren
$xls=new Spreadsheet_Excel_Reader();
$xls->setOutputEncoding("CP12522");

// Die Datei daten.xls oeffnen
$xls->read("test.xls");

// durch die Worksheets gehen
$counter=0;
foreach($xls->boundsheets AS $worksheet )
{
$sheet=$xls->sheets[$counter];

// worksheet ist der Zeiger in die Info der Tabelle
// sheet ist der Zeiger in die Daten der Tabelle
$cols=$sheet['numCols'];
$rows=$sheet['numRows'];
echo "<b>Arbeitsblatt ".($counter+1).": ".$worksheet['name']."</b><br />";
echo "hat: ".$rows." Zeilen und ".$cols." Spalten.";

// Schleife ueber die Daten der Zeile 1 (bzw. 0
$celldata=$sheet['cells'];
$headrow=1;
echo "<br /><br /><b>Spaltenueberschriften:</b><br />";
for($x=1;$x<=$cols;$x++)
{
echo $celldata[$headrow][$x]." : ";
}

$counter++;
}
echo "<br /><br />";
//Einzelne Zellen direkt ansprechen:
echo $data->sheets[0]['cells'][1][1];
echo "<form method=\"post\" action=\"" . SCRIPT_NAME . "\">";
echo "</form>";
echo "<input type=\"button\" value=\"Zurück\" onClick=\"history.back()\"><br />";[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe eine Excel Tabelle der Form

Überschrift Überschrift Überschrift

String String Double-Wert

String String Double-Wert

Jetzt laufe ich mit 2 For Schleifen durch das Dokument um es wie es in der .xls ist auch auf der PHP Seite auszugeben.

Allerdings gibt er mir nur die Überschriften (die ja auch String sind, also muss es die Möglichkeit generell geben) und die Werte zurück. Der Rest bleibt leer.

Weißt du wie man sich alles anzeigen kann?

Link zu diesem Kommentar
Auf anderen Seiten teilen

for ($y=1;$y<=$rows;$y++)
{
echo "<tr>";
for ($z=1;$z<=$cols;$z++)
{
echo "<td>";
echo $xls->sheets[0]['cells'][$y][$z];
echo "</td>";
}
echo "</tr>";
}[/PHP]

Oben nicht, aber hier! :)

Und dabei gibt er nur die Überschriften und die Zahlenwerte aus, der Rest bleibt leer!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mir ist aufgefallen:

Wenn ich

foreach($xls->boundsheets AS $worksheet )
{
$sheet=$xls->sheets[$counter];

// worksheet ist der Zeiger in die Info der Tabelle
// sheet ist der Zeiger in die Daten der Tabelle
$cols=$sheet['numCols'];
$rows=$sheet['numRows'];
echo "<b>Arbeitsblatt ".($counter+1).": ".$worksheet['name']."</b><br />";
echo "hat: ".$rows." Zeilen und ".$cols." Spalten.";

// Schleife ueber die Daten der Zeile 1 (bzw. 0
$celldata=$sheet['cells'];
$headrow=2;
echo "<br /><br /><b>Spaltenueberschriften:</b><br />";
for($x=1;$x<=$cols;$x++)
{
echo $celldata[$headrow][$x]." : ";
}

$counter++;
}[/PHP]

hier Headrom=2 setze werden auch keine Strings angezeigt sondern einfach nichts.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...