对于应用程序,我必须测试文本是否适合 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()”中得到的不同。文本中的某些字符是否需要特殊处理?请注意,当直接在 Excel 中写入超过 255 次“-”时,我没有任何问题。
使用“*”而不是“-”可以按预期工作。
最佳答案
- Excel 单元格中的字符限制 - 32767 (2^15-1)
- Excel 单元格中公式的字符限制 - 255 (2^8-1)
因此,如果您的第一个字符是 =
或 +
,则您将采用下限。
关于java - 将 Apache POI 中最大长度的文本写入单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164221/