问题标签 [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.
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 文件的代码
堆栈跟踪
java - 如何在 Java 中使用 Apache POI 从 Excel 工作表中提取数据(查找框架)
我需要这个输出:
上面的代码正在读取行并迭代每个单元格并检查单元格包含|
符号条件是否为真拆分语句正在工作,但是我需要上面的确切输出。我在上面的代码中做了什么:
- 读取excel文件。
- 从 excel 文件中读取工作表。
- 然后创建行迭代器。
- 创建单元格迭代器。
- 检查单元格包含 | 然后符号拆分该单元格字符串并存储到字符串数组中。
apache-poi - 文件格式和扩展名.xls 不匹配——apache-poi 4.1.2
我正在使用 apache-poi 4.1.2 版创建 xls。当我使用 junit 时,它工作正常,但是如果我将 tomee 与容器一起使用,则生成的文件会显示如下错误
<文件名>.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");
}
java - 我想使用 java(XSSF 格式)从扩展名为“.xlsx”的 Excel 文件中复制特定列
我正在做一个项目,我必须将数据从 Sheet1 复制到 Sheet2。
我能够创建新文件,即 file2 并将整个数据从 file1 复制到 file2。
我的要求# 我想从 file1 中以特定顺序复制特定列并将其粘贴到 file2 中。我正在使用“.xlsx”文件。请注意,我有 10,000 多行数据要从每一列复制。
在 Apache POI 中,我没有找到关于 XSSF 格式以复制特定列的任何帮助。
请指导我。
java - 使用java从excel读取时打印十进制值时出现问题
在 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。
请有人帮我解决这个问题吗?
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 版本。
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
但是这不是可靠的方法,因为在不可预测的条件下,运行可以在单词中间随机拆分。
您能否提出任何可靠的方法来实现我的用例?提前致谢。
apache-poi - 如何使用 XlsxBuilder apache poi 添加背景颜色和过滤器
我正在尝试在 apache poi 中使用 XlsxBuilder 构建一个 excelsheet。下面是用于构建工作表的示例代码。下面是为添加 excelsheet 添加的虚拟代码
我想将背景颜色添加到标题中。如果可能,将颜色替换为 excelsheet 中的行。并将过滤器添加到工作表中
excel-formula - 在excel单元格上设置公式并提取由它计算的值,然后使用apache poi 5.1删除公式
我正在使用 apache poi 5.1 将VLOOKUP
公式写入 excel 单元格。现在我需要获取公式评估值,以便我可以编写它而不是公式来删除公式(在同一个单元格中)
这是我尝试过的:
另外,我尝试使用:
但这已被贬低。
如何获取由公式评估的 excel 单元格内的值。或者有没有其他方法可以从单元格中删除公式并使用 apache poi 保留值?