-->

获得使用POI HSSF错误(Getting error using POI HSSF)

2019-07-30 10:20发布

我越来越想使用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

所以,我怎么能修复代码这个问题?

Answer 1:

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);
    }
}


文章来源: Getting error using POI HSSF