Java Apache POI:设置默认列样式不适用于现有值

时间:2016-04-01 11:48:15

标签: java apache-poi

我有以下示例代码:

    SXSSFWorkbook wb = new SXSSFWorkbook();
    SXSSFSheet sheet = wb.createSheet("sheet");
    SXSSFRow row = sheet.createRow(0);
    SXSSFCell cell = row.createCell(0);
    cell.setCellValue("value");

    XSSFCellStyle cellStyle = (XSSFCellStyle) wb.createCellStyle();
    DataFormat fmt = wb.createDataFormat();
    cellStyle.setDataFormat(fmt.getFormat("@"));
    sheet.setDefaultColumnStyle(0, cellStyle);

    FileOutputStream out;
    try {
        out = new FileOutputStream("filename.xlsx");
        try {
            wb.write(out);
            out.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }   

它成功创建了一个excel文件并将值“value”放入其中(第A列,第1行)。 我想将列A的列样式设置为“@”(= Text),这样做效果非常好,但不适用于已存在值“value”的单元格。 A列中的所有其他空单元格成功设置为样式“@”。 我必须使用SXSSFWorkbook,因为我正在创建巨大的excel文件。

1 个答案:

答案 0 :(得分:1)

为什么不在插入值之前设置单元格样式?