Apache POI für Excel: Einstellung der Art der Zelle auf "text" für eine ganze Spalte
Ich brauche zu generieren .xls (Excel) Datei, die mithilfe der Java-Bibliothek Apache POI für Tabellen.
Die Datei enthält eine Liste der Telefonnummern in der Spalte Ein, formatiert als "0221...." oder "+49221..." - so Excel standardmäßig interpretiert diese als numerischen Zellen. Das ist schlecht, weil die führende 0 oder + erhalten getrimmt.
Um das problem zu lösen, kann ich cell.setCellType(Cell.CELL_TYPE_STRING)
, welche gut funktioniert, aber nur für die Zellen, die ich habe diese für.
Wie kann ich diese Einstellung für die gesamte Spalte (also auch für alle die übrigen Zellen, in denen der Benutzer können Sie zusätzliche Telefonnummern)?
In Excel ist dies möglich: Wählen Sie die gesamte Spalte aus, und wenden Sie die Zell-Typ (die Einstellung überlebt laden/speichern der Datei).
Aber ich kann nicht finden die richtige Methode für POI.
- Zuerst habe ich angenommen, es sollte so etwas wie
sheet.setDefaultCellType(int colNum)
. Aber ich kann nichts finden, wie diese (wahrscheinlich bin ich nur blind? Es gibt viele ähnliche Methoden in der Bibliothek für die Anwendung von text-Stile wie "align-center" usw.) - Dann dachte ich: Vielleicht kann Sie nur angewendet werden, um eine NamedRange oder etwas ähnliches, aber ich habe es nicht geschafft, herauszufinden, wie das funktioniert...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wird diese helfen?
Hier einige Beispiel-code, inspiriert von Vlad ' s Antwort:
Der obige code setzt die Standard-Formatvorlage für die erste Spalte der Arbeitsblatt zu TEXT.
Dank, Vlad!
Vlad:
Dies bekamen die meisten das problem erledigt. Ich fand, dass alle leeren Zeilen wurden so formatiert, wie ich es wollte. Aber Zeilen, in denen hatte ich die ersten Nullen aussah und funktionierte gut; aber wenn ich hatte zu ändern, einen bereits vorhandenen Wert mit einem anderen Wert beginnend mit null die Nullen verschwunden. Also ich empfehle auch das hinzufügen von code, wenn Sie den Wert in der Zelle zurücksetzen der setCellStyle text. hier sind einige Ausschnitte:
Methode public Zelle createCell(Zeile r!, BBjNumber Zelle, BBjString Wert!)
methodret c!
methodend
dies kann helfen, eine andere Sohle auf der Suche für die ersten Nullen.
Vielen Dank für die Buchung.
Alex
Einen besseren Weg, um es jetzt mit POI-ist die Verwendung der
BuiltinFormats
Klasse.ZB:
Konvertieren Sie die Spalte Typ zur numerischen
Die vollständige Liste der
BuiltinFormats
- Formate gesehen werden kann, hier