将Apache POI中具有最大长度的文本写入单元格

时间:2018-01-09 08:40:20

标签: java excel apache apache-poi

对于应用程序,我必须测试文本是否适合Apache POI中的单元格。

为了快速测试一些东西,我写了一个小型的演示应用程序,在那里我向单元格写了最大允许的字符数。我遇到了我可以写入单元格的字符数

所以,这是演示应用程序:

Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("Test");

for (int idx = 0; idx < 5; idx++) {
    Row row = sheet.createRow(idx);
    Cell cell = row.createCell(0);
    cell.setCellValue(StringUtils.repeat("-", wb.getSpreadsheetVersion().getMaxTextLength()));
}

FileOutputStream out = new FileOutputStream("test.xls");
wb.write(out);

out.close();
wb.close();

但是当打开创建的excel文件时,我无法读取我写入的单元格,提示单元格只能包含1到255个字符。但这与我从“wb.getSpreadsheetVersion()。getMaxTextLength()”得到的不同。文中的某些字符是否需要一些特殊处理?请注意,当将超过255次“ - ”直接写入excel时,我没有任何问题。

使用“*”而不是“ - ”按预期工作。

1 个答案:

答案 0 :(得分:2)

  • Excel单元格中字符的限制 - 32767 (2 ^ 15-1)
  • Excel单元格中的字符限制公式 - 255 (2 ^ 8-1)

因此,如果您的第一个字符为=+,则为下限。