如何在POI hssf中格式化列而不是单元格

Sam*_*Sam 1 excel apache-poi

打开包含成百上千行数据的excel文件时,我遇到了一个问题,“太多不同的单元格格式”

有关该错误的详细信息
http://excelzoom.com/2009/09/the-mystery-of-excels-too-many-different-cell-formats/

所以我试图格式化一列而不是一个单元格。我能弄清楚如何格式化列的唯一方法是格式化每个单独的单元格。通过实现下面列出的代码。我想格式化一列而不是一行。我有成百上千的数据行要格式化。任何建议将不胜感激。

谢谢,

HSSFCellStyle cellStyle = wb.createCellStyle();
HSSFDataFormat dataFormat = wb.createDataFormat();
cellStyle.setDataFormat(dataFormat.getFormat("0.00"));

HSSFRow row = sheet.createRow(iRow);
HSSFCell cell = row.createCell((short)1);
cell.setCellStyle(cellStyle);
Run Code Online (Sandbox Code Playgroud)

Sam*_*Sam 5

在这里找到答案

http://poi.apache.org/faq.html#faq-N1014B转到该部分

  1. 我在 POI 中创建工作簿时使用样式,但 Excel 拒绝打开文件,抱怨“样式太多”。

山姆


Dan*_*iel 5

有一种更好的方法,至少在使用“新” Excel格式时。使用:

((XSSFSheet)sheet).getColumnHelper().setColDefaultStyle(col, myStyle);
Run Code Online (Sandbox Code Playgroud)

使用此方法可以确保样式甚至在插入数据的行下方继续。结果文件也将更小。