问题标签 [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 投票
1 回答
92 浏览

java - HCL Domino -11 - Java - Apache POI - 将 docx 转换为 PDF 时出现 NoClassDefFoundError 错误

我已经使用 Apache POI 通过模板生成了 docx 文件。我正在尝试将其转换为 PDF 文件。下面是代码和库。我正在使用 Apache POI 4.1.1。

我在下面添加了库

运行代码时出现以下错误。我可以知道我在这里缺少哪些 jar 文件或库吗?

0 投票
0 回答
58 浏览

java - Apache POI 从 Excel 表中解析数据透视表

我想从 Excel 工作表中读取数据透视表并在我的软件应用程序中使用这些数据。

我可以使用以下方法轻松读取表格区域的范围:-

我可以使用此范围通过解析行和列来读取表数据,但我无法分别区分页眉、正文和页脚。

有没有更好的方法来分别解析页眉和页脚范围?此外,如果还有其他更好的解析数据透视表的方法,欢迎提出建议。

我曾尝试使用 XML 格式读取 excel,table.getCTPivotTableDefinition().toString()但我无法以这种方式成功读取页眉和页脚。

提前致谢!

0 投票
0 回答
44 浏览

java - HCL Domino 11 - Java Apache POI - DOCX 到 PDF - 如何格式化 PDF 页面设置?

我使用下面的代码将 Docx 文件转换为 PDF 格式。但是 PDF 文件中的页面没有按预期设置。Docx 文件有 3 页,PDF 以 6 页显示,中间有不必要的空格和空白页。如何格式化 PDF 页面设置,以便不显示不必要的空格和空白页?

0 投票
0 回答
49 浏览

sql - 在java中使用sprintboot通过Excel上传数据库中的多条记录

如何使用 Excel 上传将多条记录插入数据库?

在处理项目时,我需要上传一个 Excel 文件,假设每张纸的记录数高达 50000 条。但是在上传 Excel 文件时,需要进行某些验证,如果任何记录失败,则需要在页面上的 Excel 相应行显示错误消息,并且不需要保存任何记录在数据库表里面。

验证可以是任何意义上的,例如:

  • 所有员工的年龄必须 >= 18 且 <= 60
  • 年龄列不应包含非数字值
  • 某些列是强制性的,如果 Excel 的该列中未填写该值,则应将错误通知用户。像 Employee 的名字不应该为空。
  • 检查日期值是否为 DD/MM/YYYY 等格式

上传此 Excel 文件时,如果成功满足前面的验证,则需要根据特定批次 id 将数据保存在数据库中,该批次 id 基本上是一个唯一编号,用于标识该特定批次中插入的记录以及它们何时全部插入。此外,需要特别注意我们提供给用户用于数据输入目的的 Excel 列标题。假设 Excel 中有 10 列,如果用户更改 Excel 列标题的顺序,或者如果他们删除某些列或更改列名称,则还需要对上传的文件执行此验证。

为了执行此验证,我们使用了一个ExcelStructure表格,该表格将存储 Excel 字段/列及其各自的大小、类型、参数,以及这些字段/列是否是必需的。下面是ExcelStructure表的结构。请记住,我们正在使用具有代码优先方法的实体框架。但仅出于演示/查看目的,我们的 SQL 表将具有以下查询。

如果我在spring boot中上传excel,请有人帮忙,excel中的列名与数据库列名匹配,然后在spring boot中保存数据库中的值

无论我用作 Excel 列名 -> 相同的代码顺序

或者,我使用了错误的订单列名称,但该值会正确,但数据库会存储错误的订单,这就是问题所在

Excel

相同的订单保存到数据库

这是数据库中案例的输出

再次我的输入

我收到类似单元格值不是字符串的错误

所以我想要数据库中的输出

我想要与 excel col 名称匹配的内容匹配数据库 col 名称

0 投票
0 回答
33 浏览

java - AWS Lambda 中的 Apache POI 4.x XWPFDocument 冷启动

我遇到了以下组合的极端冷启动问题:

  • 阿帕奇 POI 4.1.2
  • 爪哇 11
  • AWS Lambda 运行时 (corretto-11)

(请注意,4.1.2 是我唯一可用的版本。我必须使用公司管理的 jar 注册表)

lambda 函数执行以下操作:

  1. 从外部数据库检索一些数据
  2. src/main/resources从(文件大小:48 kbytes)加载一个 DOCX 模板作为输入流并XWPFDocument用它实例化一个对象
  3. 在 DOCX 中填写数据(数据通常是在文档中填写 3 个 Word 表格,总共 40 行——非常有限)
  4. XWPFDocument::write使用方法写入 ByteArrayOutputStream
  5. 将 ByteArrayOutputStream 保存到 S3 文件

当 Lambda 冷启动时,我观察到大约 12 秒的额外持续时间。使用 AWS XRay,我观察到主要的罪魁祸首是分段 (2) 平均耗时 7.5 秒,分段 (4) 平均耗时 4.2 秒。

请注意,当 Lambda 已经预热时,段 (2) 和 (4) 的执行时间分别为 1.1 秒。

所以简而言之,当 Lambda 处于冷启动状态时,我不仅会受到通常的 AWS Lambda 冷启动惩罚(约 4 秒)的影响,而且还会受到来自XWPFDocument.

我想知道冷启动时的这种行为是否已知,或者我只是自己做错了什么?