【POI word】使用POI实现对Word的读取以及生成
2016-07-15 12:05
429 查看
项目结构如下:
View Code
生成word如下:
唯一的感觉就是 功能实现的太简单,没有涉及到核心的部分,感觉 不美丽!!!
package com.it.WordTest; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.math.BigInteger; import java.util.List; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTableCell; import org.apache.poi.xwpf.usermodel.XWPFTableRow; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblPr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTrPr; import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc; public class WriteWord { public static void writeXWPFDocument(){ try { //创建一个word文档 XWPFDocument xwpfDocument = new XWPFDocument(); FileOutputStream outputStream = new FileOutputStream("F:/test/word1.docx"); /** * 创建一个段落 */ XWPFParagraph paragraph = xwpfDocument.createParagraph(); XWPFRun run = paragraph.createRun(); run.setText("德玛西亚!!"); //加粗 run.setBold(true); run = paragraph.createRun(); run.setText("艾欧尼亚"); run.setColor("fff000"); /** * 创建一个table */ //创建一个10行10列的表格 XWPFTable table =xwpfDocument.createTable(10, 10); //添加新的一列 table.addNewCol(); //添加新的一行 table.createRow(); //获取表格属性 CTTblPr tablePr = table.getCTTbl().addNewTblPr(); //获取表格宽度 CTTblWidth tableWidth = tablePr.addNewTblW(); //设置表格的宽度大小 tableWidth.setW(BigInteger.valueOf(8000)); /** * 获取表格中的行 以及设计行样式 */ //获取表格中的所有行 List<XWPFTableRow> rowList = table.getRows(); XWPFTableRow row; row = rowList.get(0); row.setHeight(2000); //为这一行增加一列 row.addNewTableCell(); //获取行属性 CTTrPr rowPr = row.getCtRow().addNewTrPr(); row.getCtRow(); /** * 获取表格中的列 以及设计列样式 */ //获取某个单元格 XWPFTableCell cell ; cell = row.getCell(0); cell.setText("第一行\r\n第一列"); //单元格背景颜色 cell.setColor("676767"); //获取单元格样式 CTTcPr cellPr = cell.getCTTc().addNewTcPr(); //表格内容垂直居中 cellPr.addNewVAlign().setVal(STVerticalJc.CENTER); //设置单元格的宽度 cellPr.addNewTcW().setW(BigInteger.valueOf(5000)); xwpfDocument.write(outputStream); outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { writeXWPFDocument(); } }
View Code
生成word如下:
唯一的感觉就是 功能实现的太简单,没有涉及到核心的部分,感觉 不美丽!!!
相关文章推荐
- tableview下拉 表头缩放效果
- Android Shape控件美化实现代码
- iOS Failed to find matching arch for 64-bit Mach-O input file
- 内部类的序列化问题;静态变量不能被序列化的问题
- 算法:有序表的二分查找
- php文件上传和下载相关知识
- React开发神器Webpack
- sql语句整理
- 单纯形的一点总结
- css自动换行如何设置?url太长会撑开页面
- 【转载】linux内存管理
- 观看大鱼海棠有感
- day_5-acm 好题思考好方法
- RecyclerView侧滑菜单和listview实现的通讯录侧滑
- [置顶] 基于Unity引擎的简单对象池
- 推荐算法之 slope one 算法
- EasyUI基本配置,HelloWorld
- "Android-事件处理机制"之面试必问技能点汇总
- android 录音获取相关值
- NSString与NSMutableString的区别