陈新龙

有些办公室工作中会重复处理一些数据,比如提取Word和Excel中的一些数据信息进行处理,然后将处理完的信息填充到新的Word和Excel文档中。这样的需求可以用Java来完成。由于这类需求具体操作过程因人而异,我们在此做一个简单的例子,实际操作并不是想象的那幺复杂,整个过程还是蛮有意思的,今天就和大家一起来分享分享。

与我们之前介绍的编程语言不同,本次的开发语言是Java、开发环境是IDEA。选择Java是因为该语言本身是一门面向对象的编程语言(Scratch虽然是最基础的入门语言,但也是一门面向对象的编程语言,只不过是通过图形的方式让我们更加容易上手与操作)。Java是目前应用最为广泛的软件开发平台之一。随着Java社区的不断壮大Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。作为一个活跃的社区,Java拥有全世界最多的技术拥护者和开源社区支持,有数不清的论坛和资料。从桌面应用软件、嵌入式开发到企业级应用、后台服务器、中间件,都可以看到Java的身影。有这幺多资源我们想要完成目标也更加容易。

创建一个maven的web项目,会生成一个pom.xml文件,开发者可以通过整个文件的配置使用maven自动下载第三方jar包,而整个jar包就是别人已经写好的一些类,然后将这些类进行打包,我们可以将这些jar包引入到项目中。然后就可以使用这些jar包中的类和属性以及方法了。

我们所使用的Poi就是Java操作Office文件的函数库。首先我们需要在pom.xml中添加对应的依赖信息。<dependency>由<groupId>组织、<artifactId>项目通用名称、<version>版本号构成,三个部分缺一不可,依赖导入完成之后我们可以点右侧的maven检查Dependencies中是否包含这些依赖信息。

Poi中包括了一系列的API(应用程序接口,简单点来说Poi帮助我们完成了很多方法,我们直接使用即可,不需要关心内部的实现原理),通过调取Poi的方法可以让我们更方便地操作Excel和Word等文件。例如修改文件的内容,提取文件的信息等等。

下面看看Poi怎幺处理Word文档的一些应用场景,很多时候我们在网上填写相应的信息后,系统便会自动下载一份对应的Word文档供我们参考,在下载之前程序已经帮助我们在文档对应的位置上填充好了相应的信息,那幺网站是怎幺做到的呢?

例如需要我们准备一份自我介绍的Word模板:我叫XXX,今年XX岁,来自XXX。需要修改信息的地方通过{{EnglishName}}这样双大括号中间加入英文名称来替代。这样做的目的是方便识别与处理。

编写代码前我们需要将模板文件的目录信息记录下来用作方法的参数。在程序运行后,Java会根据事先准备好的路径把电脑中的文件封装为一个File类,然后使用File类对文件进行操作。

接下来通过FileInputStream的方式将文件转化为文件流方便我们后续进行处理,由于事先已经导入了Poi的依赖,我们可以使用内置的功能HWPFDocument来帮助我们读取doc文件。注意doc和docx有一定的区别:doc是Word 2003使用的文档格式,而docx是Word 2007使用的文档格式。通过HWPFDocument读取到doc文件后,通过getRange()方法来获取doc文档中的全部内容。

拿到内容信息后,通过replaceText方法进行修改,修改的时候需要传入两个参数,前者表示需要替换的内容,后者表示替换值的内容。替换成功后我们可以将文件保存到本地磁盘信息中。替换完成后在Word文档中看看最终效果。

通过Poi我们不仅可以操作Word文档内容,还可以操作Excel表格进行处理,我们今天讲的替换仅仅是最简单的入门用法,在后期的教程中我也会继续给大家分享Poi的强大之处,如果你感兴趣也可以阅读相关的文档资料扩展自己的视野,推荐一个不错的学习网址:http://deepoove.com/Poi-tl/。