我越来越想使用HSSFWorkbook创建打开一个Excel工作表与MS Office 2003这个Excel工作表时的错误,执行的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);
}
}