Ich muss eine .xls (Excel) -Datei generieren, indem ich die Java-Bibliothek Apache POI für Tabellenkalkulationen verwende.
Die Datei enthält eine Liste von Telefonnummern in Spalte A, formatiert als "0221 ...." oder "+49221 ..." - so interpretiert Excel sie standardmäßig als numerische Zellen. Das ist schlecht, weil die führende 0 oder + abgeschnitten wird.
Um das Problem zu lösen, kann ich cell.setCellType(Cell.CELL_TYPE_STRING)
verwenden, was gut funktioniert, aber nur für die spezifischen Zellen, für die ich dies eingestellt habe.
Wie kann ich diese Einstellung für die gesamte Spalte anwenden (d. h. auch für alle übrigen Zellen, in denen der Benutzer zusätzliche Telefonnummern eingeben wird)?
In Excel ist dies möglich : Auswählen der gesamten Spalte und Anwenden des Zelltyps (die Einstellung bleibt beim Speichern / Laden der Datei erhalten.)
Aber ich kann nicht die richtige Methode für POI finden.
sheet.setDefaultCellType(int colNum)
sein. Aber ich kann so etwas nicht finden (wahrscheinlich bin ich nur blind? Es gibt viele ähnliche Methoden in der Bibliothek zum Anwenden von Textstilen wie" align center "etc.) Wird diese Hilfe?
Indem Sie ein Datenformat mit dem @ -Symbol erstellen und dieses in einem CellStyle verwenden Objekt, das dann an die Methode setDefaultColumnStyle () übergeben wird, war es Es ist möglich, den Standarddatentyp der Spalte auf Text zu setzen. Ich habe nicht weiter experimentiert, vermute aber, dass es möglich wäre Ähnliches gilt für andere Stilobjekte, für die der Standardtyp festgelegt werden soll numerisch oder sogar ein benutzerdefiniertes Format wie Währung.
Vlad: Das hat das meiste Problem gelöst. Ich fand, dass alle leeren Zeilen so formatiert waren, wie ich sie haben wollte. Zeilen, in denen ich erste Nullen hatte, sahen aus und funktionierten gut. Wenn ich jedoch einen bereits vorhandenen Wert mit einem anderen Wert, beginnend mit Null, ändern musste, verschwanden die Nullen. Daher empfehle ich, Code hinzuzufügen, wenn Sie den Wert in der Zelle erstellen, um den setCellStyle auf Text zurückzusetzen. Hier sind einige Schnipsel: method public Zelle createCell (Zeile r !, BBjNumber-Zelle, BBjString-Wert!)
%Vor%methodret c!
%Vor%methodend
Dies kann einigen anderen allein bei der Suche nach anfänglichen Nullen helfen. Danke für die Veröffentlichung. Alex
Tags und Links excel apache-poi xls xlsx