java wps 二次开发,Wps二次开发(POI)
Wps二次开发(POI)
一、POI的介绍
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对办公Office格式档案读和写的功能。以下是POI的几个重要组成部分,以及各组件的功能概述。
HSSF:WPS表格和Excel 97-2003(.xls),基于BIFF8格式的JAVA接口。
XSSF:WPS表格和Excel 2007+(.xlsx),基于OOXML格式的JAVA接口。
HWPF:WPS文字和Word 97-2003(.doc),基于BIFF8格式的JAVA接口。
XWPF:WPS文字和Word 2007+(.docx),基于OOXML格式的JAVA接口。
HSLF:提供读写Microsoft PowerPoint格式档案的功能。
HDGF:提供读Microsoft Visio格式档案的功能。
HPBF:提供读Microsoft Publisher格式档案的功能。
HSMF:提供读Microsoft Outlook格式档案的功能。
下面我们对最常用的HSSF和HWPF进行入门基础的介绍讲解。
二、环境搭建设置
1)需要的环境搭建
需要用到的工具有Eclipse3.7和JDK1.6
2)需要的类库导入
打开Eclipse
依次点击File->New->Java Project
输入项目名称,本例中设置为POIExample
单击完成
在项目上点击右键->New->Folder
输入文件夹名称MyPoi
我们现在需要添加Poi-3.7包
在项目上点击右键->Porpertiex
在弹出框左边选择中->Java Build Path,右边页面选中Libraries,点开选择增加包的路径文件Add External JARs...
将下载的POI-3.7包加载上去
POI对文档的创建、写入、读取
1)创建WPS表格、文字 (样例:CreateETandWPS.java)
首先创建名为POIExample的项目,从中在F盘根目录下创建名为ETExample的WPS表格文件和名为WPSExample的WPS文字文件。
代码如下:
1.FileOutputStream ETfile;
2.FileOutputStream WPSfile;
3.ETfile = new FileOutputStream("F:/ETExample.et");
4.WPSfile= new FileOutputStream("F:/WPSExample.doc");
5.ETfile.close();
6.WPSfile.close();
2)在创建的文档中写入内容(样例:WriteETandWPS.java)
在生成的文件中插入文字内容,在ETExample表格第一个表中B2单元格中插入“我是表格内容”的文字。在WPSExample文档文件中插入“我是文字内容”的文字。最后保存退出。
代码如下:
1.WPS表格写入///
2.HSSFWorkbook wb = new HSSFWorkbook(); //创建一个空白的工作簿对象
3.HSSFSheet st = wb.createSheet("表格工作表第1页"); //基于上面的工作簿创建属于此工作簿的工作表名为"表格工作表第1页"
4.HSSFRow row = st.createRow(0); //创建属于上面工作表的第1行,参数从0开始可以是0~65535之间的任何一个
5.HSSFCell cell = row.createCell((short)1); //创建属于上面行的单元格,参数从0开始可以是0~255之间的任何一个,
6.cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置此单元格的格式为文本,此句可以省略,WPS表格会自动识别。
7.cell.setCellValue(new HSSFRichTextString("我是表格内容")); //直接在上面定义好的单元格输入内容("我是表格内容"),
8.FileOutputStream ETFile;
9.ETFile = new FileOutputStream("F:/ETExample.et"); //创建一个文件输出流,指定到F盘根目录下的ETExample.et空白的表格文件
10.wb.write(ETFile); //把工作表内容写到流里
11.ETFile.close(); //记得手动关闭流,POI不关闭用户打开的流。
12.WPS文字写入///
13.String str="我是文字内容"; //需要输入WPS文字里的内容
14.writeWPS("F:/WPSExample.doc",str); //调用写入的方法
15./writeWPS方法//
16.byte b[] = string.getBytes("GBK"); //字符集的类型为"GBK"
17.ByteArrayInputStream bais = new ByteArrayInputStream(b); //创建一个字符数组输入对象
18.POIFSFileSystem fs = new POIFSFileSystem(); //创建POI文件集对象
19.DirectoryEntry directory = fs.getRoot(); //获取文件录入节点
20.DocumentEntry de = directory.createDocument("WordDocument", bais);
21.//创建文件对象
22.FileOutputStream ostream = new FileOutputStream(path);
23.//设置输出流对象,参数为地址
24.fs.writeFilesystem(ostream); //将文件内容写入流,参数为输出流
25.bais.close(); //关闭流对象
26.ostream.close();
3)读取出文档中的信息内容(样例:ReadETandWPS.java)
在Eclipse控制台中输出ETExample第一个表B2的内容以及WPSExample文档中的内容。
代码如下:
1.///ET表格读取内容/
2.FileInputStream ETreadFile = new FileInputStream("F:/ETExample.et");
3.//指定要读取的文件,本例使用之前生成的ETExample.et
4.HSSFWorkbook wb = new HSSFWorkbook(ETreadFile);
5.//创建一个工作表对象,从指定的文件流中创建,即上面指定了的文件流
6.HSSFSheet st = wb.getSheet("表格工作表第1页");
7.//获取名称为"表格工作表第1页"的工作表,可以用getSheetAt(int)方法取得Sheet
8.HSSFRow row = st.getRow(0);
9.//获得第一行,同上,如果此行没有被创建过则抛出异常
10.HSSFCell cell = row.getCell((short) 1);
11.//获取第一个单元格,如果没有被创建过则抛出异常
12.System.out.println(cell.getRichStringCellValue());
13.//把cell中的内容按字符串方式读取出来,并显示在控制台上
14.ETreadFile.close(); //记得关闭流
15.//WPS文字读取内容
16.FileInputStream WPSreadFile=newFileInputStream("F:/WPSExample.doc");
17.//指定要读取的文件,本例使用之前生成的WPSExample.wps
18.HWPFDocument hDocument= new HWPFDocument(WPSreadFile); //创建文档对象
19.Range rang= hDocument.getRange(); //定义文档Range,获得区域String string=rang.text(); //获得文档内容
20.System.out.println(string); //把文档中的内容读取出来,并显示在控制台上
21.WPSreadFile.close(); //记得关闭流
POI对文档的格式、方法
1)对文档中的格式编辑(样例:SpecialPOIExample.java)
对ETExample表格文件第一个表B2单元格的边框、字体及颜色进行设置。
B2单元格效果为:纵向显示文字、背景颜色为红色、字体颜色为黄色。
对SpecialPOIExample.wps文档文件里的文字内容修改成自己想要的内容。
把文档里的文字内容“我是文字内容”改成“这是文字信息”。
代码如下:
1.WPS表格格式设置/
2.FileInputStream ETreadFile = new FileInputStream("F:/ETExample.et");
3.//指定要读取的文件,本例使用之前生成的ETExample.et
4.HSSFWorkbook wb = new HSSFWorkbook(ETreadFile);
5.//创建一个工作表对象,从指定的文件流中创建,即上面指定了的文件流
6.HSSFSheet st = wb.getSheet("表格工作表第1页");
7.//获取名称为"表格工作表第1页"的工作表,可以用getSheetAt(int)方法取得Sheet
8.HSSFRow row = st.getRow(0);
9.//获得第一行,同上,如果此行没有被创建过则抛出异常
10.HSSFCell cell = row.getCell((short) 1);
11.//获取第一个单元格,如果没有被创建过则抛出异常
12.System.out.println(cell.getRichStringCellValue());
13.//把cell中的内容按字符串方式读取出来,并显示在控制台上
14.ETreadFile.close(); //记得关闭流
15.//设置字体
16.HSSFFont font=wb.createFont(); //定义字体格式对象
17.font.setFontName("宋体"); //字体为宋体
18.font.setColor(HSSFColor.YELLOW.index); //字体颜色为黄色
19.//设置单元格
20.HSSFCellStyle cellStyle=wb.createCellStyle(); //设置单元格样式对象
21.cellStyle.setBorderBottom(HSSFCellStyle.BORDER_DOUBLE); //设置单元格低边框样式
22.cellStyle.setBorderLeft((short)1); //设置单元格左边框
23.cellStyle.setBorderRight((short)1); //设置单元格右边框
24.cellStyle.setBorderTop(HSSFCellStyle.BORDER_DOUBLE); //设置单元格上边框
25.cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); //设置单元格填充方式
26.cellStyle.setFillForegroundColor(HSSFColor.RED.index); //设置单元格背景颜色
27.cellStyle.setRotation((short)90); //设置内容旋转90度,达到竖排显示效果
28.cellStyle.setFont(font); //将字体对象定义到单元格样式中
29.cell.setCellStyle(cellStyle); //设置定义的单元格格式赋予cell单元格对象
30.FileOutputStream fos=new FileOutputStream("F:/ETExample.et"); //输出流对象到指定文档
31.wb.write(fos); //定义的写入文档
32.fos.flush(); //完成输出流
33.fos.close(); //关闭流
34.WPS文字格式设置/
35.HWPFDocument hDocument=new HWPFDocument(new FileInputStream("F:/WPSExample.doc"));
36.//定义输入流自定文件
37.Range range= hDocument.getRange(); //获取Range对象
38.range.replaceText("我是文字内容","这是文字信息"); //设置更改内容
39.String str=range.text(); //定义内容为字符串类型
40.writeWPS("F:/WPSExample.doc",str); //调用写入方法将指定内容写入到指定文档中
2)个别特殊例子(样例:PictureOut.java)
在F盘根目录下SpecialPOIExample.wps包含图片的WPS文字文档,从这个文档中把图片提取出来另存成img.jpg图片文件在F盘根目录下。
代码如下:
1.
2.String savePath= "F:\\"; //定义路径对象
3.String docFile= savePath+ "SpecialPOIExample.wps"; //定义文件名+路径对象
4.String imgFile= savePath+ "img.jpg"; //定义图片名+路径对象
5.FileInputStream file=new FileInputStream(docFile); //定义输入流对象
6.HWPFDocument poiDoc = new HWPFDocument(file); //定义文档对象
7.List picList = poiDoc.getPicturesTable().getAllPictures(); //定义获取文档图片对象集
8.Picture picture = (Picture) picList.get(0); //定义图片对象为图片集的第一个图片 picture.writeImageContent(new FileOutputStream(imgFile));
9.//将图片对象输出到指定图片名+路径
10.
11.
java wps 二次开发,Wps二次开发(POI)相关推荐
- java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码...
A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 , ...
- SpringBoot实现Java高并发秒杀系统之Service层开发(二)
继上一篇文章:SpringBoot实现Java高并发秒杀系统之DAO层开发 我们创建了SpringBoot项目并熟悉了秒杀系统的表设计,下面我们将讲解一下秒杀系统的核心部分:Service业务层的开发 ...
- java游戏开发入门(二) - 菜单
java游戏开发入门(二) - 菜单 前言 编码 主菜单 游戏内菜单(按下ESC后出现,并会暂停游戏) 效果展示 主菜单 游戏内菜单 完整代码 完整项目 前言 上一章我们创建了一个600x600的 ...
- wps之excel学习(二)
wps之excel学习(二) 数据格式 数据格式
- 记京东Java开发实习生二面
京东Java开发实习生二面已挂,心情虽然失落,但是还是要在这里做一点作结,以便日后做些参考.让每一次失败都变的有意义! 面试流程 这次面试的流程比较简洁,首先问了两道技术问题,然后面试官对于我的简历中 ...
- java淘宝客开发(二)
java淘宝客开发(二) 淘宝客订单获取接口 第三方淘宝客订单接口调用示例 淘宝客订单获取接口 通过接口获取淘宝客订单,非渠道管理模块,只需要淘宝客授权即可. 通过在淘宝联盟开发平台文 ...
- java快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码
获取[下载地址] A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技 ...
- java快速开发平台 二次开发 外包项目利器 springmvc SS-M后台框架源码 (转载)
获取[下载地址] [免费支持更新] 三大数据库 mysql oracle sqlsever 更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系 ...
- 华为Java开发一面二面 附笔试(OD)
华为Java开发一面二面(OD)4.3 面试的是1-3年工作经验的岗位 一面:45min 主要是问项目和平时用到的一些工具之类的,因为我写的比较少,所以基本上都是问的springboot和sp ...
最新文章
- [置顶] AMF序列化为对象和AMF序列化为二进制字节流
- 基本类型与字符串之间的转换
- nginx(一)安装与命令总结
- iptables 范例
- hdu 1511(dp)
- [云炬创业基础笔记] 第三章测试10~12
- oracle rac ora 12560,rac ORA-12541: TNS:no listener问题 非常急!!
- 存数字,储未来——新华三2018存储瞄准闪存、海量、AI与超融合
- 三千万海外用户的天才程序员之死
- oracle对用户的管理
- mysql opxe_PXE安装系统
- mxnet入门--第5篇
- php pdf 生成分页,关于XSL生成PDF分页的问题
- 怎么使用java初始化链表_Java链表基本操作和Java.util.ArrayList
- [工具] f.lux – 随时间改变屏幕色温护眼
- 【阿里云】云解析DNS
- android 百度地图驾车导航,使用百度地图API实现驾车导航
- mysql释放所有_mysql表空间释放情况汇总
- 智慧电厂三维可视化定位技术,高效管控人员/车辆
- 使用JS判定PC浏览器和IE浏览器
热门文章
- ANTHILL 自动化构建
- 正则表达式的基本语法规则
- 软件工程知识点总结——第三、四部分
- 你真的了解getline()的返回值吗?—— basic_istream::getline() 与 string::getline
- 【C语言】数据结构实验报告--单链表
- maven 修改maven本地仓库的位置
- 数字 IC 技能拓展(1)Xilinx_Vivado_SDK_2019.1 安装详细教程
- 视频会议终端到终端的加密
- 编写电话号码查询系统
- 【论文精读】基于周期编码深度自编码器的心肺音盲单耳声源分离