Spreadsheet_Excel_Writer Daten-Ausgang ist beschädigt
Benutze ich Spreadsheet_Excel_Writer zu generieren .xls-Datei und es funktioniert gut, bis ich zu tun haben mit einer großen Menge von Daten. Auf bestimmte Stufe, die es gerade schreibt einige Unsinn chars und beendet die Befüllung bestimmte Spalten. Jedoch einige der Spalten Feld bis zum Ende (im Allgemeinen numerische Daten)
Ich bin mir nicht ganz sicher, wie die xls-Dokument gebildet wird: Zeile für Zeile, oder von col col... es ist Auch offensichtlich nicht um einen Fehler in einem string, denn wenn ich zu schneiden, um einige Daten, tritt der Fehler ein wenig weiter.
Ich denke, es gibt keine Notwendigkeit, in allen meinen code
hier sind einige essentials
$filename = 'file.xls';
$workbook = & new Spreadsheet_Excel_Writer();
$workbook->setVersion(8);
$contents =& $workbook->addWorksheet('Logistics');
$contents->setInputEncoding('UTF-8');
$workbook->send($filename);
//here is the part where I write data down
$contents->write(0, 0, 'Field A');
$contents->write(0, 1, 'Field B');
$contents->write(0, 2, 'Field C');
$ROW=1;
foreach($ordersArr as $key=>$val){
$contents->write($ROW, 0, $val['a']);
$contents->write($ROW, 1, $val['b']);
$contents->write($ROW, 2, $val['c']);
$ROW++;
}
$workbook->close();
- Wie groß ist das dataset?
- (alternative) phpexcel.codeplex.com
- Könnten Sie bitte akzeptieren, als "die richtige Antwort" die mabi ' s Antwort, die wirklich das problem lösen, so sparen Sie eine Menge Kopfschmerzen auf andere Leute.
- warum die generierte Datei READONLY ist ? gibt es eine option gesetzt werden, um dies zu vermeiden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem, ich fand diese Lösung, die funktioniert für mich:
http://pear.php.net/bugs/bug.php?id=19284&edit=3
[2012-08-08 17:12 UTC] identit (Vincent Dubourg)
Die Lösung ist die Veränderung in Root.php \ Zeile 623 :
zu
die Datei ist pear/OLE/PPS/Root.php im Paket OLE-1.0.0RC2 (beta)
Ich weiß, es ist eine alte post, aber ich hatte das gleiche problem und löste es die Rückkehr zu Spreadsheet_Excel_Writer 0.9.2 und OLE-1.0.0RC1.
Hoffe, das hilft jemand in der Zukunft.
Ok! Ich habe gefunden, was das problem war. Die Sache, die ich nicht erwähnt habe ist, dass ich musste die Codierung auf UTF-8 und Ausgang Russischen text mit kyrillischen Zeichensatz. Also für mich sind diese Zeilen nötig waren,
aber S_E_W mit setVersion(8) erzeugt schlechte BIFF8-Datei, das versaut alle meine xls, wenn der Ausgang überschreitung einer bestimmten Anzahl von bytes. Es konnte nicht geöffnet werden in MS-Office und öffnete mit beschädigten Daten in Oo...
Mögliche Lösung, die ich gefunden habe in das web verändert sich und die folgenden Zeilen
<...>\Spreadsheet\Excel\Writer\Workbook.php
Wert ändern zu 0x04E3 (Codepage für die Windows-1251)
<...>\Spreadsheet\Excel\Writer\Format.php
Wert ändern на 0xCC (chrset ANSI-Kyrillisch).
Sollte den trick tun für diejenigen, die mit kyrillischen Buchstaben. Ich freue mich über das ausprobieren.
Und, ja, diese Bibliothek ist SO veraltet. Ich werde die übertragung zu http://phpexcel.codeplex.com/
Vielen Dank für Beratung
UPD: Die Lösung oben funktioniert anscheinend nicht =\ Und ich habe nicht gefunden, überall auf der web-patch oder eine Lösung, die funktioniert der trick, und die neuste version (0.9.2) das problem nicht lösen. Also ich nehme an, das ist noch ein BUG, der nie behoben...
Spreadsheet_Excel_Writer ist in der Nähe nicht veraltet von der BIRNE. Ich würde vorschlagen, Sie versuchen, mit phpexcel - http://phpexcel.codeplex.com/ - statt.