小编use*_*532的帖子

使用POI编写xlsx文件

我有一个应用程序,生成一个XSSFWorkbook并用预算数据填充它.完成后,它会写出一个文件:

try {
 FileOutputStream fileOut = new FileOutputStream("/path/to/my/file/myfilename.xlsx");
 wb.write(fileOut);
 fileOut.close();
} catch (IOException ioe) {
 logger.error("Error writing spreadsheet", ioe);
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.我正在研究一个Linux机器,但输出是供Windows机器人使用的,所以它必须是一个xlsx.工作簿按预期生成,当我在LibreOffice中打开它时,它看起来完全符合我的预期.然后我将它发送给我的同事,当他们在Excel中打开它时,大多数单元格格式化都消失了.具有货币格式的单元格只是原始数字.格式化为百分比的单元格(大多数)只是原始数字.

我有什么想法可能做错了吗?谢谢!

其中一种细胞样式:

XSSFCellStyle percent = wb.createCellStyle();
percent.setDataFormat(wb.createDataFormat().getFormat("0.0%"));
Run Code Online (Sandbox Code Playgroud)

稍后用于此处:

header.createCell(cn).setCellValue("%");
sheet.setDefaultColumnStyle(cn, percent);
Run Code Online (Sandbox Code Playgroud)

有一堆这些,但我怀疑我做错了,一个是同样的问题,所有这些,所以我只提出一个而不是200行.;)

更新:在rgettman的建议下,我尝试在创建后为每个单独的单元格设置样式.这有效.谢谢rgettman!

java excel apache-poi

5
推荐指数
1
解决办法
471
查看次数

XSSFSheet(Apache POI)排序和过滤

我在XSSFSheet上创建一个自动过滤器,如下所示:

sheet.setAutoFilter(new CellRangeAddress(1, sheet.getLastRowNum() + 1,
                0, 14));
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我也希望它默认按特定列上的升序值排序(第1列从零开始索引).有谁知道怎么做?

谢谢!山姆

java

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

apache-poi ×1

excel ×1