问题标签 [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 - 工作表级别的 Apache POI 3.17 CustomProperties
我正在使用 Apache poi -3.17 和 ooxml-schemas-1.3.jar 并希望将自定义属性写入 Worksheet 并且我遇到了这个错误。
注意:getUnusedPartIndex 方法与最新版本的 Poi 兼容,即 apache poi 4.1.2
请建议getUnusedPartIndex的替代方法,以便根据namePattern获取未使用的部分索引,该索引尚不存在,并且在Apache Poi 3.17中具有最低的正索引
java - 如何使用 Java 中的 Apache POI 在 Excel 中的折线图中添加两个以上的 y 轴(垂直)?
目前,我使用基于Apache POI 的 Apache-POI 4.0.0 在 java 中创建并保存了折线图 - 无法让折线图值出现在辅助轴中。成功地,我能够在 Excel 文件中生成如下图所示的输出:
以下是它的书面代码:
现在我想在我的图表中添加两个以上的 y 轴(垂直),预期结果必须如下图所示:
我尝试了一些方法,例如将新图表或第二个 y 系列添加到折线图对象,但它对我不起作用。
java - Apache POI 和 CellType
我对版本有点迷茫
我尝试了 3.17、4.0.0 和 5.0.0 版本。
或者
我无法获得没有弃用或类型错误的代码:-(
我正在将 Ecipe 与 Maven 和 Java 11 一起使用。在版本更新后,我执行了“更新项目”来更新 Maven。
java - 如何将 Apache POI 中图表区域的填充属性设置为“NO FILL”?
我使用 Apache POI 创建了一个图表,如下所示:
现在,我需要在 java 中将图表区域的填充属性设置为“NO FILL”。有没有办法做到这一点?
java - XSSFCellStyle.BORDER_THIN - poi 4.1.2 中的(BORDER_THIN 无法解析或不是字段)
我已将 apache POI 从 3.9 升级到 4.1.2 版本。XSSF 字体、样式、超链接、单元格范围地址等出现错误,请帮助我升级到此版本需要做哪些更改。
添加了 Maven 依赖项,
export - 创建可运行的 jar 文件并使用 Extract required 和 Package required lib 获得差异结果
我有一个使用 POI lib 的 maven 项目,当我在 eclipse 中运行它时它很好。但是当我将此应用程序导出到 jar 文件时出现问题
如果我使用提取所需的库导出到生成的 JAR -> exec jar 文件并收到此错误消息 java.io.IOException: Your InputStream is not an OLE2 stream,也不是 OOXML 流,或者您没有提供 poi-ooxml*。类路径/模块路径中的 jar - FileMagic:OOXML,具有提供者:[org.apache.poi.hssf.usermodel.HSSFWorkbookFactory@5ad94591]
如果我使用 Package required 库导出到生成的 JAR -> exec jar 文件中,并且在 eclipse 上运行时运行结果相同但速度很慢
我试图用更新 pom.xml
但是当导出 jar 文件时,它仍然有这些问题。请帮忙 !
java - 在 apache poi 电子表格创建中获取一个空行作为第一行
最近从 poi-2.5.1 升级到 poi-4.1.2 并且正在发生的事情是在生成的 .xls 文件中插入一个空白行作为第一行。这是通过比较从 poi-2.5.1 创建的文件与从 poi-4.1.2 生成的文件来确定的。手动删除第一行时,我可以正常打开电子表格,但文件中的第一行会出现错误,文件格式和扩展名不匹配。
我的应用程序在 weblogic-12.2.1.4 中运行,它采用正在向用户显示的表格并在下载给用户的 jsp 中创建一个 excel 电子表格。
我试过搜索这个问题,我能找到的是如何在阅读电子表格时删除该行。
编码
我在代码片段之前添加了out.clear()
andresponse.reset()
并没有帮助。
我也试过评论后的一切
Workbook book = new HSSFWorkbook();
然后做book.write(output);
,我仍然得到空白行。
这是仅Workbook book = new HSSFWorkbook();
在 Notepad++ 中查看
的输出 输出在 Notepad++ 中的样子
java - Binary file encryption with Apache POI
I'm trying to apply encryption to a binary xls file with Apache POI. While I can successfully encrypt xml based files, if I encrypt a binary one I can't open it and I get the wrong password error.
This is my code:
apache-poi - 加速 Apache POI SUMIF
在 xlsx 工作簿中,有一些单元格包含一些无界的 SUMIF 公式,如下所示:SUMIF(MySheetname!$B:$B,$E4,MySheetname!$I:$I)
. 使用 Apache POI 5.0.0 对一个 SUMIF 函数的评估持续 100 毫秒,对给定工作簿的评估持续几分钟。
提高执行持续时间的一种方法是将公式绑定到以下内容:SUMIF(MySheetname!$B1:$B100,$E4,MySheetname!$I1:$I100)
. 在我的情况下,这不是一个解决方案,因为我不是 xlsx 文件的作者,并且系统从未知的人那里获取未知的 xlsx 文件(所以我不能只告诉他们限制 SUMIF 范围)。
当前的实现org.apache.poi.ss.formula.functions.Sumif
迭代给定(无界)范围内的所有单元格,因此每次评估迭代 1048576 个单元格。
这是方法实现的一部分sumMatchingCells(AreaEval, I_MatchPredicate, AreaEval)
:
我想通过检查行或列是否实际存在于总和范围中来提高此方法的性能。也许是这样的(使用不存在的方法sheetContainsRowIndex
):
LazyAreaEval
包含 aSheetRangeEvaluator
并且 this 包含SheetRefEvaluator
s 并且这些包含 an并且EvaluationSheet
this 至少知道getLastRowNum()
. 不幸的是,这个属性链是私有的。
知道如何实现这一目标吗?或任何其他想法如何提高 SUMIF 执行的性能?
java - 如何使用java读取excelsheet中的列?
我有一个 excelsheet,其中有类似这样的数据,我的要求是读取 excelsheet 并获取具有下拉类型的 screen_name,这是我的示例输入,我还添加了可用作参考的输出
输出将是:- ds_top
我能够读取 excelfile 并获取 screen_names 的列值并单独输入,但是如何实现进一步的逻辑
任何帮助表示赞赏