[JAVA] Lösung für das Problem, dass zelleninterne Zeilenumbrüche verstärkt werden, wenn EXCEL mit SXSSF Workbook (3.16 oder älter) ausgegeben wird.

Überblick

Wenn Sie EXCEL mit der SXSSF-Arbeitsmappe ausgeben, Verwenden Sie ver poi-3.17 oder höher. das ist alles.

Unten werde ich es als Memo hinterlassen, wenn ich unbedingt poi-3.16 verwenden muss.

Veranstaltung

Wenn Sie bei Verwendung von SXSSFWorkbook eine Zeichenfolge mit dem Zeilenvorschubcode CRLF in einer Zelle festlegen, wird eine EXCEL-Datei mit der doppelten Anzahl von Zeilenumbrüchen in der Zelle generiert. Wenn Sie eine andere Version als die oben genannte speichersparende Version verwenden, verdoppeln sich die CRLF-Zeilenumbrüche nicht.

Fazit

Wenn bei Verwendung von SXSSFWorkbook der Zeilenvorschubcode des in der Zelle festgelegten Zeichenkettenzeichens CRLF lautet, setzen Sie ihn nur auf CR oder nur auf LF, bevor Sie ihn übergeben.

Ungetestetes Beispiel

SXSSFWorkbook wb = new SXSSFWorkbook();
 // Abkürzung
 String setString = "1. Zeile \ r \ n2nd Zeile";
Row row = sheet1.createRow(rowNum);
Cell cell = row.createCell(colNum);
cell.setCellValue(setString.replaceAll("\r\n", "\n"));

Fehlerursache

Sie können durch Grep die Quelle mit '\ r' herausfinden. Scannen Sie Zeichen für Zeichen mit dem Schalter org.apache.poi.xssf.streaming.SheetDataWriter, Weil '\ r'und' \ n'jeweils in Zeilenumbrüche konvertiert werden. Fehlende Berücksichtigung von "\ r \ n".

Sogar Poi-3.16 hat es nicht behoben.

das ist alles.

2019/3/19 Nachtrag

Es scheint in 3.17 behoben worden zu sein. Vielen Dank an @ yuki-teraoka für den Hinweis.

Bugzilla: Bug 61048 - Newlines in cells not rendering with SXSSF github: [Bug-61048] SXSSF module writes wrong escape sequence for carriage re…

Recommended Posts

Lösung für das Problem, dass zelleninterne Zeilenumbrüche verstärkt werden, wenn EXCEL mit SXSSF Workbook (3.16 oder älter) ausgegeben wird.
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
So lösen Sie das Problem, dass die Bean beim Verschachteln in Spring Batch nicht ordnungsgemäß verarbeitet wird
So lösen Sie das Problem, wenn der Wert nicht gesendet wird, wenn das Formular in Schienen deaktiviert und gesendet wird
[jOOQ] Wie in der WHERE / AND / OR-Klausel WANN FALLEN
[Rails] So lösen Sie das Problem, dass das Standardbild beim Bearbeiten überschrieben wird, ohne das Bild hochzuladen [Active Storage]
So lösen Sie das Problem, dass unter iOS14 keine Benachrichtigung angefordert werden kann
[Swift] So zeigen Sie die eingegebenen Zeichen im Widget über UserDefaults an, wenn Sie das WidgetKit verwenden
[Rails] Lösung, wenn bei Verwendung von Capybara mit Rspec der Fehler "undefined method` visit '" angezeigt wird
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java