2016-05-26 4 views
0

Ich lese nur aus einer Excel2007-Datei, nicht schreiben.PHPExcel Wie wird der Zellenwert ohne Interpretation gelesen?

Ich bin durch einen RowIterator, dann einen CellIterator, der $ cell-> getValue() in eine HTML-Tabelle widergibt. Bei einigen Zellen ist der Zellenwert falsch und wird als Zahl angezeigt (insbesondere als Gleitkommazahl), wenn der tatsächliche Wert (als Zeichenfolge) angegeben werden soll.

Wie erzwinge ich, dass alle Zellenwerte ohne Konvertierung in Zahlen und ohne Interpretation den ursprünglichen Wert haben?

Antwort

2

Sie verwenden getValue(), die die Rohdaten aus der Zelle abruft .... das bedeutet nicht, dass es falsch ist, einfach unformatiert. Was Sie tatsächlich bekommen, ist der ursprüngliche Wert, wenn das, was Sie zu haben scheinen, der interpretierte Wert ist. Beispielsweise werden in MS Excel Datum/Uhrzeit-Werte als numerischer Wert (wie ein Unix-Zeitstempel, außer basierend auf einem anderen Basisdatum als Unix, und als Anzahl von Tagen statt als Sekunden) gehalten, und es ist die Anwendung von eine Zahlenformatmaske für diese Zelle, die dafür verantwortlich ist, sie als Datum anzuzeigen.

Wenn Sie diesen Wert mit Formatierung abrufen möchten, gibt es die getFormattedValue() Methode ..... vorausgesetzt, Sie haben die Datei nicht mit readDataOnly .... geladen, die die MS Excel-Nummer Formatmaske anwenden wird auf den Zellenwert und geben Sie ihn wie in MS Excel angezeigt zurück.

Wenn Sie keine Formatierung wünschen, aber Ihre Zelle eine Formel enthält, gibt getValue() die Formel zurück, nicht den berechneten Wert .... Wenn Sie den berechneten Wert anstelle der Formel verwenden möchten, verwenden Sie die getCalculatedValue() Methode.

All dies ist in der

+0

PHPExcel documentation beschrieb ich mit GetFormattedValue versucht(), das gleiche Resultat. – user2624632

+0

Ich habe auch versucht, setReadDataOnly ein- und auszuschalten, kein Effekt. – user2624632

+0

Die Zelle ist als "Zeit" formatiert und enthält ": 30" oder ": 60" oder "2:30". Das muss das Problem sein. – user2624632

Verwandte Themen