问题标签 [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.
servlets - org.apache.poi.POIXMLDocument 类在 4.0.1 版中去了哪里?
我有一个写出电子表格的 Tomcat 应用程序,它使用以下 JAR 文件:
- poi-3.16.jar
- poi-ooxml-3.16.jar
- poi-ooxml-schemas-3.16.jar
我看到有一个 4.0.1 版本的 poi,在查看https://poi.apache.org/components/时,我认为我已经设置了先决条件,但是运行时出现异常:
更新:
显然,当我构建出现上述错误的 .WAR 文件时,NetBeans 似乎找到了旧的 3.16 jar 文件并编译了我的代码,但我在服务器上没有 3.16 jar 文件。现在我已经在 NetBeans 中进行了清理,我无法在 NetBeans 中进行编译。
错误:
ExcelParser.jara 第 36 行是:
这是我的 pom.xml,引用了 4.0.1 jar:
我已经检查了我的 NetBeans .m2 存储库,并且在C:\Users\mstewart\.m2\repository\org\apache\poi\poi\
andpoi\ooxml
和 and中有 3.16 和 4.0.1 目录poi\ooxml-schemas
java - Java Apache POI 4.1 createPivotTable 抛出“无法从 NUMERIC 单元格获取 STRING 值”
当使用 POI 4.1 库以编程方式在 .xslx 文件中创建数据透视表时,问题就出现了。
POI 从 3.X 升级到 4.1 的一部分是删除设置单元类型。因此在 4.X 中调用和设置单元格类型是自动处理的。就我而言,我曾认为我的问题是由这种变化引起的。下面的重构示例
至
创建数据透视表时,使用函数 .createPivotTable() 我收到以下错误。
从代码行
我曾认为这与由于单元格创建的变化而为数据透视表格式化的数据有关。
问题最终是我的数据创建了一个原始数字单元格表,但没有任何标题。.createPivotTable() 将“第一个单元格”作为字符串调用,假设它是一个标题。这是函数的默认操作。
此默认操作应记录在函数中或编写更好的异常以阐明抛出的错误是来自数据单元格还是标题单元格。
TLDR。createPivotTable() 需要一个字符串标题来设置列名。
java - 延迟将值写入具有公式的 Excel 文件
用例:我有一个用 excel 实现的成本计算器。我必须在工作表的输入单元格中插入大量输入,并从同一个工作表中获取输出。我有 3 张类似的 excel 表,大小约为 3MB。excel 工作表为 .xlsm 格式。
使用的技术:Java 1.8 和 Apache POI 4.0.1
问题:将输入值写入大于 3MB 的 excel 文件非常快(大约 12 次输入大约需要 10 秒)。但是对 <3MB 的 excel 文件执行相同的操作太慢(仅一个输入约 10 秒)。
我似乎有些人在这里说要使用 SXSSFWorkbook。我用它替换了 XSSFWorkbook,但它给了我空指针异常。此外,这用于 100MB 以上的大型 Excel 工作表,对吗?
写入值的代码:
java - 如何使用 Java (Apache poi) 在 .doc 扩展文件上创建水印
我正在尝试在 .doc 文件和 .docx 文件上创建水印,我使用 apache-poi 4 实现了 .docx 扩展名水印。但我无法使用相同的方法重写 .doc 扩展名的代码。
我尝试将 XWPFDocument 与 HWPFDocument 交换为 .doc 扩展名,但它不会为我提供用于创建水印的页眉页脚策略对象。下面是适用于 .docx 扩展的代码片段
有没有办法使用 apahce-poi 实现 .doc 扩展文件水印?