Java文件读写的常用技术——项目开发实战篇
一、 概述:
本文主要以Office办公软件和PDF文件的读写为主线逐步展开说明,分析将相关格式的文件内容文本化的过程 。另外针对于Excel文件内容的结构化和对象化进行实际案例分析,给出更适应Spring框架配置的解决方案 。
二、 POI基本介绍:
1、 POI基本描述:
POI是用编写的免费开源且跨平台的Java API,Apache POI提供API给Java程式对格式档案读和写的功能 。POI为"Poor Obfuscation Implementation"的首字母缩写,直译为"可怜的模糊实现",或意为"简洁版的模糊实现" 。
.NET的开发人员则可以利用NPOI(POI for .NET)来存取Microsoft Office文档的功能 。
2、 POI需要的Jar包:
a) poi-3.10-Final.jar(用于xls);
b) poi-ooxml-3.10-Final.jar(用于xlsx);
c) poi-ooxml-schemas-3.10.jar;
d) xmlbeans-2.6.0.jar
e) dom4j-1.6.1.jar
f) poi-scratchpad-3.10-FINAL-20140208.jar(用于word,ppt)
3、 POI结构说明(包名称说明):
a) HSSF:提供读写Microsoft Excel XLS格式档案的功能;
b) XSSF:提供读写Microsoft Excel OOXML XLSX格式档案的功能;
c) HWPF:提供读写Microsoft Word DOC格式档案的功能;
d) HSLF:提供读写Microsoft PowerPoint格式档案的功能;
e) HDGF:提供读Microsoft Visio格式档案的功能;
f) HPBF:提供读Microsoft Publisher格式档案的功能;
g) HSMF:提供读Microsoft Outlook格式档案的功能;
三、 PDF基本介绍:
1、 摘要:
自从Adobe公司1993年第一次发布公共PDF参考以来,支持各种语言和平台的PDF工具和类库就如雨后春笋般涌现 。然而,Java应用开发中Adobe技术的支持相对滞后了 。
自从Adobe公司1993年第一次发布公共PDF参考以来,支持各种语言和平台的PDF工具和类库就如雨后春笋般涌现 。然而,Java应用开发中Adobe技术的支持相对滞后了 。这是个奇怪的现象,因为PDF文档是企业信息系统存储和交换信息的大势所趋,而Java技术特别适合这种应用 。然而,Java开发人员似乎直到最近才获得成熟可用的PDF支持 。
2、 特性:
PDFBox(一个BSD许可下的源码开放项目)是一个为开发人员读取和创建PDF文档而准备的纯Java类库 。它提供如下特性:
a) 提取文本,包括Unicode字符;
b) 和Jakarta Lucene等文本搜索引擎的整合过程十分简单;
c) 加密/解密PDF文档;
d) 从PDF和XFDF格式中导入导出相关表单数据;
e) 向已有PDF文档中追加内容;
f) 将一个PDF文档切分为多个文档;
g) 覆盖PDF文档;
3、 PDFBox API:
PDFBox设计时采用面向对象的方式来描述PDF文档 。PDF文档的数据是一系列基本对象的集合:数组,布尔型,字典,数字,字符串和二进制流 。PDFBox在org.pdfbox.cos包(COS模型)中定义这些基本对象类型 。你可以使用这些对象与PDF文档进行任何交互,但你应该先对PDF文档内部结构以及高层概念作一些深入的了解 。例如,页面和字体都是带有特殊属性的字典对象;PDF参考手册提供这些特殊属性的含义和类型的说明,但这是一个枯燥的文档查阅过程 。
于是,org.pdfbox.pdfmodel包(PD模型)应运而生,它的基础是COS模型,但提供了以一种熟悉的方式访问PDF文档对象的高层API 。对底层COS模型进行了封装的PDPage和PDFont等类就在这个包中 。
注意:虽然PD模型提供了一些优秀的功能,但它依然是一个开发中的模型 。在有些实例中,你可能需要借助于COS模型才能访问PDF的特定功能性 。所有的PD模型对象都提供返回相应的COS模型对象的方法 。所以,在一般情况下,你都会使用PD模型,但PD模型鞭长莫及时你可以直接操作底层的COS模型 。
4、 PDF需要的Jar包:
a) pdfbox-1.7.1.jar;
b) fontbox-1.7.1.jar;
四、 各种文件的处理方式:
1、 Excel文件:
示例代码:
文章插图
ExcelTextParser
2、 Word文件:
示例代码:
文章插图
WordParser
3、 PPT文件:
示例代码:
文章插图
PPTParser
4、 Visio文件:
示例代码:
文章插图
VisioParser
5、 Pdf文件:
示例代码:
- 你最喜欢的软件 Office 2021预览版来了!ISO离线镜像文件
- 品读:陈抟老祖《心相篇》原文+译文
- 命理解读人一生要经历的四大关卡!
- 解读祸害位:风水上的祸害位在什么位置?-家居风水
- 品读陈抟老祖《心相篇》以古为师,如何才能生活的更好!
- 以古为师,让人生更美好!静心品读陈抟老祖《心相篇》
- 周易解读:“来说是非者,便是是非人”是什么意思
- 阅读的温度 遇见好书——少年歌行,一本让人回味无穷的新派武侠小说
- 传世怀旧手游 传世怀旧手游版
- 买房必读:你买的风水旺宅适合你的命局吗?-家居风水