使用 POI 事件 api 检索单元格样式信息(特别是颜色)
我正在尝试创建一个使用 POI 和 java 读取现有 xls 文件(我们不控制文件创建)的 Web 应用程序。
上传文件的大小相当大,因此目标是使用事件驱动的 Excel 解析 API。
我无法找到任何 API 来使用事件驱动方法访问单元格颜色。
然而,上传的 Excel 有一些基于单元格颜色的逻辑。
任何人都知道我该怎么做?
谢谢!
Am trying to create a web application which reads an existing xls file(we do not control file creation ) using POI and java.
The size of the uploaded file is quite large so the goal is to use event driven excel parsing APIs.
I was not able to find any API to access cell colors using the event driven approach.
However the uploaded excels have some logic based on the cell colors.
Any one has an idea how I can go about it?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可能需要一个 FormatTrackingHSSFListener - 它将在经过时获取适当的格式和样式记录。当事件 API 为您提供单元格记录时,您将能够使用格式侦听器来获取样式。
如果您查看 Apache Tika 中的 ExcelExtractor,您将看到一个使用 FormatTrackingHSSFListener 来获取单元格样式和基于该单元格样式中应用的格式的格式数字的示例:
https://svn.apache.org/repos/asf/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
对于颜色您将需要使用类似的东西 - ExtendedFormatRecords 保存颜色索引。
You probably want a FormatTrackingHSSFListener - that will grab the appropriate formatting and style records as they go past. When you the event API gives you a cell record, you'll be able to use the formatting listener to get at the style.
If you look at ExcelExtractor from Apache Tika, you'll see an example of using a FormatTrackingHSSFListener to get the cell style and format numbers based on the format applied in that cell style:
https://svn.apache.org/repos/asf/tika/trunk/tika-parsers/src/main/java/org/apache/tika/parser/microsoft/ExcelExtractor.java
For colours you'll want to use something similar - the ExtendedFormatRecords hold the colour indexes.