POI in Action

news2024/11/28 3:30:15

POI 组件依赖

按需引入对应依赖 (给出官方的指引)

组件作用Maven依赖
POIFSOLE2 Filesystempoi
HPSFOLE2 Property Setspoi
HSSFExcel XLSpoi
HSLFPowerPoint PPTpoi-scratchpad
HWPFWord DOCpoi-scratchpad
HDGFVisio VSDpoi-scratchpad
HPBFPublisher PUBpoi-scratchpad
HSMFOutlook MSGpoi-scratchpad
DDFEscher common drawingspoi
HWMFWMF drawingspoi-scratchpad
OpenXML4JOOXMLpoi-ooxml plus either poi-ooxml-schemas or ooxml-schemas and ooxml-security
XSSFExcel XLSXpoi-ooxml
XSLFPowerPoint PPTXpoi-ooxml
XWPFWord DOCXpoi-ooxml
XDGFVisio VSDXpoi-ooxml
Common SLPowerPoint PPT 和 PPTX 共用组件poi-scratchpad and poi-ooxml
Common SSExcel XLS 和 XLSX 共用组件poi-ooxml
XSSFExcel XLSXpoi-ooxml
XSLFPowerPoint PPTXpoi-ooxml
XWPFWord DOCXpoi-ooxml
XDGFVisio VSDXpoi-ooxml
Common SLPowerPoint PPT 和 PPTX 共用组件poi-scratchpad and poi-ooxml
Common SSExcel XLS 和 XLSX 共用组件poi-ooxml

什么是 OLE2 和 OOXML

OLE2 和 OOXML 本质上都是一种文件格式规范或标准,平时看到的 excel 中,有字体、公式、颜色、图片等等,看起来非常复杂,但是在文件结构上都遵循着固定的格式。

OLE2 文件一般包括 xls、doc、ppt 等,是二进制格式的文件。 相关内容可以参考: 复合文档Ole对象二进制储存格式 。

OOXML文件一般包括 xlsx、docx、pptx 等。该类文件以指定格式的 xml 为基础并以 zip 格式压缩,这里我利用解压工具解压本地的一个 xlsx 文件,可以看到以下文件结构,在本文例子中,我们会重点关注 sharedStrings.xml 和 sheet1.xml 的内容,因为使用 SAX API 时必须用到:

在这里插入图片描述

包名描述
org.apache.poi.ssExcel API,底层解析方式类似 DOM,效率较低,内存占用较大
org.apache.poi.hssfExcel XLS API,采用 SAX API 方式读写
org.apache.poi.xssfExcel XLSX API,采用 SAX API 方式读写

POI SAX 方式的 API 非常繁琐,使用时须熟练掌握 OLE2 或 OOXML 的规范

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/626840.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MCP1501基准电源系列输出电容为什么不能超过300P

1 介绍 在我们通常理解中基准的输出电容需要在100nF以上,才能有较好的性能输出,为什么MCP1501系列官方推荐输出负载电容不能超过300P呢 2 原理分析 如下是MCP1501手册中标注的,最大负载电容不能超过300pF,超过300pF容易振荡 MC…

JavaSE-01【初识Java】

文章目录 JavaSE-01【初识Java】第一章 Java开发序言1.1 Java语言概述1.2 Java语言的发展史1.3 Java语言应用领域1.4 掌握Java可以从事的工作 第二章 Java开发环境2.1 JDK、JRE、JVM2.2 Java虚拟机 (JVM)2.3 JDK JRE JVM三者的关系2.4 JDK的下载2.5 JDK的安装2.6 JDK环境变量的…

华为认证 | HCIE-Big Data-Data Mining 认证即将升级新版本!

华为认证HCIE-Big Data-Data Mining V3.0(中文版)预计将于2023年6月30日正式对外发布。 为了帮助您做好学习、培训和考试计划,现进行预发布通知,请您关注。 01 发布概述 基于“平台生态”战略,围绕“云-管-端”协同的…

使用PowerDesigner生成数据库设计文档

第一步:将现有得数据表通过PowerDesigner导入sql脚本(同时保证注释不丢失及name code comment) 1:依次点击File->Reverse Engineer->Database... 2.弹出弹窗对模型进行命名,同时在DBMS下拉选择框中需要选择自己对应的数据库类型&#…

Vue+SpringBoot打造生活废品回收系统(附源码文档)

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。 一、摘要…

数据库管理-第八十一期 保姆级EMCC搭建教程(20230606)

数据库管理 2023-06-06 第八十一期 保姆级EMCC搭建教程1环境说明2 EMCC安装前准备3安装EMCC4 进入EMCC5 添加主机与数据库5.1 添加主机5.2 添加数据库 6 注意事项总结 第八十一期 保姆级EMCC搭建教程 EMCC,全称Oracle Enterprise Manager Cloud Control&#xff0c…

巨详细的一份Python学习路径文档--如何精准的入手Python

当谈论学习Python编程时,有许多不同的途径和资源可供选择。为了帮助你建立起一个学习Python的有效路线,下面是一个包含基本步骤和关键资源的建议。 「请注意,这只是一个指南,你可以根据自己的兴趣和学习风格进行调整。」 简章 「确…

《水经注地图服务》新版发布

《水经注地图服务》已发布新版,请各位新老客户到官方网站下载新版试用或升级更新。 当前版本主要对Windows 64位版和Linux版进行升级,从该版开始,Windows32位版将不再升级。 服务管理界面 版本号 当前版本号:5.0.0-beta Window…

通过 Python 封装关键词搜索阿里巴巴商品api接口

以下是使用 Python 封装关键词搜索阿里巴巴商品列表数据的步骤: 使用 requests 库向阿里巴巴搜索接口发送 HTTP 请求,可以使用 GET 或 POST 方法,请求参数中应包含搜索关键词、每页展示数量、当前页码等信息。 解析返回的 response 中的 HTM…

论文解读:Towards Open World NeRF-Based SLAM,迈向开放世界的NeRF-SLAM

论文:https://arxiv.org/pdf/2301.03102.pdf 摘要: 神经辐射场(Neural Radiance Fields,NeRF)在同时定位与地图构建(Simultaneous Localization and Mapping,SLAM)任务中提供了灵活…

【Leetcode】跳跃游戏 | Jump Jump,Greedy Greedy

55 跳跃游戏 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 不断更新当前能够到达的范围maxReach class Solution {public boolean canJump(int[] nums) …

云原生到底是个啥玩意?从云端降临的超级技术:云原生

目录 福利:文末分享云原生相关全套资料哦 一、云计算?云原生? 二、云原生带来什么好处 7个字:隔离、弹性、自动化。 三、云原生的基础知识 四、云原生中最重要的概念 1、虚机 2、容器 3、容器编排 4、VPC 5、微服务&am…

Lambda表达式 函数式接口 Stream流

目录 一. Lambda表达式 1. 函数式编程思想概述 2. Lambda的优化 3. Lambda的格式 标准格式: 参数和返回值: 省略格式: 4. Lambda的前提条件 二. 函数式接口 1. 概述 格式 FunctionalInterface注解 2. 常用函数式接口 Supplier接口 Consumer接口 Function接口 P…

2023大厂精选 Java 面试真题集锦(含答案),面试一路开挂

前言 跳槽求职时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来,期间也没有准备充分,到底是因为技术原因,影响自己…

poll函数和epoll函数族

一、IO多路复用 二、多路复用的实现方式 select函数 int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout); poll函数 int poll(struct pollfd *fds, nfds_t nfds, int timeout); epoll 函数族 epoll_create epoll_wai…

(6.2-6.8)【大数据新闻速递】

关 注gzh“大数据食铁兽”,了解更多的大数据快讯 【华为曹冲:聚焦四大战略方向,共建数智金融未来】 6月7日,华为全球智慧金融峰会2023在上海举行。会上,华为数字金融军团CEO曹冲发表《智领睿变,共建数智…

Redis学习总结(一)

Redis 持久化机制 RDB 持久化 Redis RDB(Redis DataBase)是Redis的一种持久化方式。它可以将Redis中的数据快照存储在硬盘上,并在需要时重构该数据快照。因为可以在磁盘上存储和重构数据快照,所以RDB是一种非常高效的Redis数据备…

用于语义分割的动态焦点感知位置查询

文章目录 Dynamic Focus-aware Positional Queries for Semantic Segmentation摘要本文方法Dynamic Focus-aware Positional QueriesEfficient High-resolution Cross-attentionFocus-aware Segmentation Framework 实验结果 Dynamic Focus-aware Positional Queries for Seman…

Servlet运行原理及常见API

文章目录 一. Servlet运行原理二. Servlet常用API1. HttpServlet1.1. Servlet的生命周期1.2. Post请求的构造 2. HttpServletRequest2.1. 获取请求信息2.2. 前端给后端传输数据的三种方式2.2.1. 发送Get请求通过query string传输数据2.2.2. 发送Post请求通过form提交数据2.2.3.…

Python爬虫基础知识点

Python爬虫是使用Python编写的程序,可以自动抓取互联网上的数据。常用的Python爬虫框架包括Scrapy、BeautifulSoup、Requests等。Python爬虫可以应用于众多场合,如大数据分析、信息监测、数据挖掘和机器学习等领域。那么新手应该如何学习python爬虫呢&am…