问题标签 [apache-poi-4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
238 浏览

java - java.lang.ArrayIndexOutOfBoundsException: Index -2 out of bounds for length 46410 在使用 Apache POI 打开 XLS 文件时是什么意思?

我有一个 Microsoft Excel XLS 文件(2003 格式),当尝试使用 Apache POI 3.17(和 4.1.2)打开时,我得到以下堆栈跟踪。我可以在 Excel 2016 中打开 Excel 文件而不会出现任何错误。

我确实注意到,使用 Excel 2016 保存文件时,我可以通过 Apache POI 打开它。它还显示使用 Excel 2016 保存文件后,文件大小从 15 MB 减少到 11 MB。

原始文件确实有很多空白列延伸得很远,并且减少了文件中的一些行最终允许我使用 Apache POI 打开它,但它并不特定于行中的任何特定内容。由于敏感信息和无法编辑它最终解决了问题,我无法发布原始文件。

打开 XLS 文件的代码

堆栈跟踪

0 投票
1 回答
336 浏览

java - 如何在 Java 中使用 Apache POI 从 Excel 工作表中提取数据(查找框架)

我需要这个输出:

上面的代码正在读取行并迭代每个单元格并检查单元格包含|符号条件是否为真拆分语句正在工作,但是我需要上面的确切输出。我在上面的代码中做了什么:

  1. 读取excel文件。
  2. 从 excel 文件中读取工作表。
  3. 然后创建行迭代器。
  4. 创建单元格迭代器。
  5. 检查单元格包含 | 然后符号拆分该单元格字符串并存储到字符串数组中。

该图像是我需要 excel 文件的上述输出的确切输入 excel 文件。

0 投票
0 回答
32 浏览

apache-poi - 文件格式和扩展名.xls 不匹配——apache-poi 4.1.2

我正在使用 apache-poi 4.1.2 版创建 xls。当我使用 junit 时,它工作正常,但是如果我将 tomee 与容器一起使用,则生成的文件会显示如下错误

打开 xls 时的屏幕截图

<文件名>.xls 的文件格式和扩展名不匹配

  • Java 版本 1.8

  • tome-plus 1.7.5

  • K8s 码头集装箱

  • 使用 HSSFWorkbook

    文件 outputFile = new File(dir, fileParameter.getFileName()); if (outputFile.exists() && !FileUtils.deleteFile(outputFile)) { LOG.warn("无法删除"); } try (final HSSFWorkbook workbook = new HSSFWorkbook()) { final HSSFSheet sheet = workbook.createSheet(SUMMARY_SHEET_NAME); //标题行 int rowNum = 0; int cellNum = 0; HSSFRow 行 = sheet.createRow(rowNum++); row.createCell(cellNum++).setCellValue("TEST1"); row.createCell(cellNum++).setCellValue("TEST2"); row.createCell(cellNum++).setCellValue("TEST3"); row.createCell(cellNum++).setCellValue("TEST4"); row.createCell(cellNum++).setCellValue("TEST5");

    }

0 投票
1 回答
80 浏览

java - 我想使用 java(XSSF 格式)从扩展名为“.xlsx”的 Excel 文件中复制特定列

我正在做一个项目,我必须将数据从 Sheet1 复制到 Sheet2。

我能够创建新文件,即 file2 并将整个数据从 file1 复制到 file2。

我的要求# 我想从 file1 中以特定顺序复制特定列并将其粘贴到 file2 中。我正在使用“.xlsx”文件。请注意,我有 10,000 多行数据要从每一列复制。

在 Apache POI 中,我没有找到关于 XSSF 格式以复制特定列的任何帮助。

请指导我。

0 投票
1 回答
43 浏览

java - 使用java从e​​xcel读取时打印十进制值时出现问题

在 Excel 中,我有这些十进制值:

TS 学士学位
5.60 4.10
10.00 10.00
10.00 10.00
10.00 10.00

解析时,它显示不同的值:

TS 学士学位
0.1375 0.85
0.0125 0.7125
0.0125 0.8125000000000001
0.0125 0.7875000000000001

我需要打印确切的值。

这是代码:

我正在使用 Apache POI-4.1.1。

请有人帮我解决这个问题吗?

0 投票
1 回答
422 浏览

java - 获取 :: java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Object;)V

我正在使用 Poi(poi, poi-ooxml-schemas,poi-ooxml-4.4.1 ) api 进行导出-导入操作,现在在升级 xmlbeans-5.0 后将 xmlbeans 从 3.0.2 升级到 5.0.1 版本。 1 创建新的 SXSSFWorkbook(100) 时出错;

.... java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Object;)V java.lang.NoClassDefFoundError: 无法初始化类 org.apache.poi.xssf.model.SharedStringsTable

并使用 jaxb-api-2.4.0-b180830.0359 版本。

0 投票
1 回答
240 浏览

java - Apache POI - 检索 .doc 文件中关键字之间的文本内容并有条件地呈现它

我想在 .doc 文件中的两个关键字之间查找文本内容,并有条件地呈现该文本内容或隐藏它。例如:

Lorem Ipsum 只是${if condition}印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是业界标准的虚拟文本${endif}

当我使用 Apache - POI 解析文档时,我希望能够以某种方式在文档中发现这些块引用 ${if condition} ${endif}之间的每一个内容,并有条件地在我想要生成的下一个文档中呈现或不呈现它。

所以上面我解析后的文字应该有以下两种不同的形式:

1) 如果条件满足

Lorem Ipsum 只是印刷和排版行业的虚拟文本。自 1500 年代以来,Lorem Ipsum 一直是业界标准的虚拟文本

或者

2) 条件不满足时

Lorem Ipsum 只是虚拟文本

我试图通过使用XWPFParagraph对象来做到这一点,XWPFRun但是这不是可靠的方法,因为在不可预测的条件下,运行可以在单词中间随机拆分。

您能否提出任何可靠的方法来实现我的用例?提前致谢。

0 投票
0 回答
35 浏览

apache-poi - 如何使用 XlsxBuilder apache poi 添加背景颜色和过滤器

我正在尝试在 apache poi 中使用 XlsxBuilder 构建一个 excelsheet。下面是用于构建工作表的示例代码。下面是为添加 excelsheet 添加的虚拟代码

我想将背景颜色添加到标题中。如果可能,将颜色替换为 excelsheet 中的行。并将过滤器添加到工作表中

0 投票
0 回答
29 浏览

excel-formula - 在excel单元格上设置公式并提取由它计算的值,然后使用apache poi 5.1删除公式

我正在使用 apache poi 5.1 将VLOOKUP公式写入 excel 单元格。现在我需要获取公式评估值,以便我可以编写它而不是公式来删除公式(在同一个单元格中)

这是我尝试过的:

另外,我尝试使用:

但这已被贬低。

如何获取由公式评估的 excel 单元格内的值。或者有没有其他方法可以从单元格中删除公式并使用 apache poi 保留值?

0 投票
0 回答
52 浏览

java - 使用 apache POI 在 excel 文本框中将 HTML 字符串转换为 RichText

给定一个 HTML 作为这样的字符串。

我想把它格式化成一个excel文本框。它看起来像这样。 在此处输入图像描述

我尝试编写一些基本代码来提取正确的值。它没有按预期工作。

代码的作用如下。

  1. 从 HTML 中获取所有子元素。
  2. 按顺序处理它们并从中提取文本。

问题是由于etc中的strong嵌套标签造成的......p

输出: