3Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
492
492
EMPFEHLEN
-
Hey Leute
Ich versuche gerade eine Liste mit Kundendaten, die ich aus meiner mySQL-Datenbank auslese in eine OpenOffice Calc-Datei zu exportieren. Für eine Excel-Datei benutze ich derzeit folgenden Code:
Ich dachte, dass ich mir die beiden Zeilen speziell für Excel ändern muss. Ich bin davon ausgegangen, dass OOo Calc ebenso mit Tabs \t arbeitet.PHP-Code://mySQL-Abfrage
$header .= Kundennummer . "\t";
$header .= Name . "\t";
$header .= Postleitzahl . "\t";
$header .= Stadt . "\t";
while($row = mysql_fetch_row($export)) {
$line = '';
foreach($row as $value) {
if ((!isset($value)) OR ($value == "")) {
$value = "\t";
} else {
$value = str_replace('"', '""', $value);
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim($line)."\n";
}
$data = str_replace("\r","",$data);
$currentDate = date('d.m.Y');
$fileName = ’NAME '.$currentDate.'';
// Anzahl der Einträge zählen
$fileHead = utf8_decode(’Titel');
$fileColsingCount = utf8_decode('Anzahl der Einträge: '.$count_sho.'');
$fileColsingDate = 'Stand: ' . $currentDate . '';
$decodeData = utf8_decode($data);
header("Content-type: application/octet-stream“); // speziell für Excel
header("Content-Disposition: attachment; filename=".$fileName.".xls“); // speziell für Excel
header("Pragma: no-cache");
header("Expires: 0");
print "$fileHead\n\n$header\n\n$decodeData\n$fileColsingCount\n$fileColsingDate";
Folgendes habe ich schon versucht:
oderPHP-Code:header('Content-type: application/vnd.sun.xml.calc‘);
Außerdem habe ich die Dateiendung in .ods, in o.odf und in .scx geändert.PHP-Code:header('Content-type: application/vnd.oasis.opendocument.spreadsheet‘);
Das Ergebnis war, dass sich anstelle von OOo Calc sich der normale Writer geöffnet hat und darin die Daten zwar zu sehen war, aber nicht formatiert.
Weiß einer weiter?
Vielen Dank, Gruß Flo
-
12.01.12 10:16 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Schau mal hier: http://www.phpclasses.org/browse/file/12627.html
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Ok, ich werde mich mal anmelden und schauen, ob ich die paar wichtigen Zeilen für meinen Code finde. Danke
-
12.01.12 11:19 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Grundsätzlich würde ich dir ja vorschlagen, es als CSV zu implementieren. CSV hat den Vorteil, das man es in einer beliebigen Anwendung (sei es Calc, Writer, Excel oder Word) öffnen kann und es immer korrekt funktioniert.
Die dazu notwendige Funktion kannst du hier finden: http://php.net/manual/en/function.fputcsv.php
Um es wirklich als OOo-Dokument zu implementieren brauchst du mehr, als nur eine Datei, in der die Inhalte drin stehen. OOo-Dokumente bestehen aus einem ZIP-Komprimierten Archiv, in welchem vor allem auch Meta-Informationen über das Spreadsheet stehen. Dafür kannst du die Klasse verwenden, die du im meinem ersten Post finden kannst. Denn die Klasse erstellt ein tatsächliches OOo-Dokument mit allen Meta-Informationen, die dafür notwendig sind. Dafür darfst du Klasse aber nicht auseinander nehmen sondern musst sie als komplette Bibliothek einbauen.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Ok, dann werde ich mir das CSV Ding mal anschauen.
Eine nichtformatierte Liste in eine Excel-Datei zuschreiben ist ja recht einfach, daher dachte ich, dass es vllt eben so leicht ist, sie in eine OOo-Datei zu speichern.
Danke
-
22.01.12 03:01 #6
Hallo!
Naja, es würde ja noch *.fods (OpenDocument Spreadsheet (Flat XML)) geben, also eine einzelne XML-Datei.
Aber wirklich einfacher macht es die Arbeit auch nicht.
Zelle A1 bis A3 mit jeweils dem Wert 2, Zelle A4 mit der Summe aus Zelle A1 bis A3 --> macht mal eben locker 235 Zeilen XML-Code.
Ich würde daher auch eher eine CSV-Datei vorziehen.
Nicht nur weil eine CSV-Datei mit viel weniger "Code" auskommt, sondern auch weil sie ganz einfach aufgebaut ist.
Gruss Dr DauSchri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
Beispiel für eine CSV:
Das wär eigentlich schon alles...PHP-Code://Datei öffnen (Rechte festlegen)
$file = fopen('file.csv', 'w');
//Anlegen eines Arrays. Eine Zeile besteht aus allen Variablen des Arrays.
$array = array('name', 'telefonnummer', 'adresse', 'email');
fputcsv($file, $array);
//while-schleife für die Werte... wir gehen davon aus, dass bereits eine Mysql-Abfrage vorhanden ist
while($row = mysql_fetch_object($sqlQry))
{
unset($array);
$array = array($row->name, $row->tel, $row->adresse, $row->email);
fputcsv($file, $array);
}
fclose($file);
Wichtig wäre vielleicht, bei der Funktion fputcsv einen weiteren Parameter anzugeben
Damit kann man festlegen, dass das Trennungszeichen ein Semikolon (Strichpunkt) ist.PHP-Code:fputcsv($file, $array, ';');
Du könntest theoretisch auch alles selber in eine CSV-File schreiben, ist aber wesentlich aufwendiger... dafür gibts ja extra die schönen Funktionen.
Ähnliche Themen
-
OpenOffice 2.4: Seitenumbruch von Calc-Tabellen in Writer-Dokumenten
Von Mel_One im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 20.02.09, 13:01 -
Excel bzw OpenOffice Calc
Von bergonline im Forum Office-AnwendungenAntworten: 6Letzter Beitrag: 17.10.08, 21:49 -
OpenOffice (Calc) - Relative Links zu externen Dokumenten
Von Fanthom im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 21.07.08, 00:30 -
OpenOffice Calc: Verweisformel fest an Spalte binden?
Von yLLiam im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 05.03.08, 11:50 -
Hab ein kleines Problem mit Excel bzw. Openoffice Calc
Von Kyrodust im Forum Office-AnwendungenAntworten: 0Letzter Beitrag: 22.04.06, 02:15





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren