gpt4 book ai didi

java - 使用 POI HSSF 时出现错误

转载 作者:行者123 更新时间:2023-11-30 04:44:13 25 4
gpt4 key购买 nike

尝试使用 MS Office 2003 打开 Excel 工作表时遇到错误。此 Excel 工作表是使用 HSSFWorkbook 创建的,实现了 usermodel 范围 org.apache.poi.hssf.usermodel

在 Microsoft Excel 2003 中:“不同的单元格格式太多”。在 Microsoft Excel 2007/2010 中,文件可能会生成以下错误消息:“Excel 在文件中发现不可读的内容”。这是关于单元格格式的,请引用以下页面:

http://support.microsoft.com/kb/213904

那么如何在代码中解决这个问题呢?

最佳答案

Excel 对可以拥有的不同单元格样式的数量有限制,而且数量低得惊人。对于刚接触 POI 的人来说,一个常见问题是他们跳过了有关工作簿范围的单元格样式的内容,而是为每个单元格创建一种单元格样式。这很快就超出了 Excel 的限制...

您以前编码的位置可能类似于

Sheet s = wb.createSheet();
for (int rn=0; rn<=10; rn++) {
Row r = s.createRow(rn);
for (int cn=0; cn<=4; cn++) {
Cell c = r.createCell(c);
c.setCellValue( getMyCellValue(rn,cn) );

CellStyle cs = wb.createCellStyle();
cs.setBold(true);
if (cn == 2) {
cs.setDataFormat( DataFormat.getFormat(yyyy/mm/dd) );
}
c.setCellStyle(cs);
}
}

您需要将单元格样式创建从头开始,例如

CellStyle bold = wb.createCellStyle();
bold.setBold(true);

CellStyle boldDate = wb.createCellStyle();
boldDate.setBold(true);
boldDate.setDataFormat( DataFormat.getFormat(yyyy/mm/dd) );

Sheet s = wb.createSheet();
for (int rn=0; rn<=10; rn++) {
Row r = s.createRow(rn);
for (int cn=0; cn<=4; cn++) {
Cell c = r.createCell(c);
c.setCellValue( getMyCellValue(rn,cn) );

CellStyle cs = bold;
if (cn == 2) {
cs = boldDate;
}
c.setCellStyle(cs);
}
}

关于java - 使用 POI HSSF 时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11474402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com