簡體   English   中英

XSSF Apache 興趣點

[英]XSSF Apache POI

我使用以下設置 XSSF 工作表中的默認列樣式? 但這不起作用任何人都可以建議錯誤修復。

format = workbook.createDataFormat();
style = workbook.createCellStyle();
style.setDataFormat(format.getFormat("@"));
sheet.setDefaultColumnStyle(1, style); 

從 POI 4.1.0 開始,它與 SXSSF 一起工作,但有一個警告。 默認列樣式僅定義當用戶將數據輸入到 POI 創建的工作表中的空單元格時將應用哪種樣式。 如果您通過 POI 創建單元格並輸入數據,則默認格式不適用,您必須使用setCellStyle(CellStyle)

例如,對於文本 styles:

private CellStyle createTextFormat(SXSSFWorkbook workbook) {
    DataFormat fmt = workbook.createDataFormat();
    CellStyle textStyle = workbook.createCellStyle();
    textStyle.setDataFormat(fmt.getFormat("@"));
    return textStyle;
}

// then do both:
int columnIndex = 0;
sheet.setDefaultColumnStyle(columnIndex, textFormat)

SXSSFCell cell = row.createCell(0);
cell.setCellStyle(textFormat);
cell.setCellValue("0100");

可能這個錯誤讓你頭疼。 使用 Apache POI 3.7 嘗試您的代碼,我得到的附加效果是第二列被隱藏(寬度 = 0)並且格式未應用。

干杯,維姆

PS 請注意,我談論的是第二列,這是您的代碼真正指的是什么; 如果您想將樣式應用於第一列,您應該使用 0(從零開始)。

試試這個它會起作用:

       style.setDataFormat(HSSFDataFormat.getBuiltinFormat("@"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM