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

标签 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()”中得到的不同。文本中的某些字符是否需要特殊处理?请注意,当直接在 Excel 中写入超过 255 次“-”时,我没有任何问题。

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

最佳答案

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

因此,如果您的第一个字符是 =+,则您将采用下限。

关于java - 将 Apache POI 中最大长度的文本写入单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48164221/

相关文章:

python - 使用 openpyxl 搜索一列中的单元格,然后打印出该相关单元格的行

java - 使用 EntityManager 从 EJB 访问 Hibernate Session

excel - 将 Excel 数据导入 F#

excel - 无法在 VBA、Excel 2012 中正确设置日期格式

ruby-on-rails - Windows 上 Apache 上的 Rails - HOWTO

java - 如何在 Java 中获取 Apache 环境变量?

c++ - 如何将 Qt qml 移植到带有 C++ 后端的 Web 服务器

java - 使用大型并行 Java 8 流时如何防止堆空间错误

java - 在java中追加子项后如何保存xml

java - 泄漏金丝雀不起作用