java对word文档的操作
springmvc controller层
类在org.apache.poi.xwpf包下
POI在读写word docx文件时是通过xwpf模块来进行的,其核心是XWPFDocument。一个XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档。XWPFDocument中主要包含下面这几种对象:
XWPFParagraph:代表一个段落。
XWPFRun:代表具有相同属性的一段文本。
XWPFTable:代表一个表格。
XWPFTableRow:表格的一行。
XWPFTableCell:表格对应的一个单元格。
重点介绍写文档,比较灵活,但有点麻烦,也可以通过模板来读之后进行替换。
注意对象的获取与方法的调用
“`
@RequestMapping(value=”/export”,method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public void doWord(HttpServletResponse response){
//创建文档对象
XWPFDocument xdoc = new XWPFDocument();
//设置页眉(自己封装的方法)
simpleDateHeader(xdoc);
//创建段落
XWPFParagraph titleMes1 = xdoc.createParagraph();
//设置段落居中(段落格式利用段落对象调用方法来设置,比如居中,缩进,段落是否站一整页等。)
titleMes1.setAlignment(ParagraphAlignment.CENTER);
//在这个段落之后追加一段相同属性的段落(文本格式通过文本对象调用方法来设置,比如字体颜色,大小等。)
XWPFRun r1 = titleMes1.createRun();
String s1=”hello world”;
r1.setText(s1);
r1.setFontFamily(“微软雅黑”);
r1.addBreak();
int columns = 5;
int rows = 8;//行数
//创建表格对象(一个8行5列的表格)
XWPFTable xTable = xdoc.createTable(rows, columns);
//得到Table的CTTblPr,不存在则新建
CTTbl ttbl = xTable.getCTTbl();
//表格属性
CTTblPr tblPr = ttbl.getTblPr() == null ? ttbl.addNewTblPr() : ttbl.getTblPr();
//设置表格宽度
CTTblWidth tblWidth = tblPr.isSetTblW() ? tblPr.getTblW() : tblPr.addNewTblW();
tblWidth.setW(new BigInteger("9600"));
//获取表格第一行(从0开始)
XWPFTableRow row = null;
row = xTable.getRow(0);
//设置行高
row.setHeight(100);
//获取表格的单元格(第一行的第一个,从0开始)
XWPFTableCell cell = null;
cell = row.getCell(0);
//设置内容(也可以使用cell.setParagraph(XWPFParagraph p),单元格里添加一个段落,更易于设置样式)
cell.setText("内容")ServletOutputStream out = null;
try {String filename = new String("report.doc".getBytes(),"utf-8");response.setHeader("Content-Type","application/msword");response.setHeader("Content-Disposition", "attachment; filename=" + filename);out = response.getOutputStream();xdoc.write(out);out.flush();out.close();
} catch (IOException e) {e.printStackTrace();out.close();
}
}
//自己写的设置页眉函数
//(通过传文档对象来创建实现,你只需要设置页眉的内容,格式,样式,利用r1对象来设置,可创建多个XWPFRun对象)
public void simpleDateHeader(XWPFDocument document) throws Exception {
CTP ctp = CTP.Factory.newInstance();
XWPFParagraph codePara = new XWPFParagraph(ctp, document);
codePara.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun r1 = codePara.createRun();
r1.setText(“这里是页眉”);
codePara.setBorderBottom(Borders.THICK);
XWPFParagraph[] newparagraphs = new XWPFParagraph[1];
newparagraphs[0] = codePara;
CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy headerFooterPolicy = new XWPFHeaderFooterPolicy(
document, sectPr);
headerFooterPolicy.createHeader(STHdrFtr.DEFAULT, newparagraphs);
}
“`
java对word文档的操作相关推荐
- Java对Word文档进行操作
JACOB(java -com bridge)是一个 JAVA到微软的COM接口的桥梁.使用JACOB允许任何JVM访问COM对象,从而使JAVA应用程序能够调用COM对象. 一.提取文件地址: ht ...
- java用poi导出word,Java使用POI导出Word文档的操作教程,poiword
Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...
- 【使用分享】一文掌握Aspose.Words for Java,实现Word文档的生成与操作
Aspose.Words for Java是一个功能强大的Java Word文档处理组件,支持文档的生成.修改.转换.渲染等功能.本文将为您全面介绍Aspose.Words的主要功能与用法. 一.文档 ...
- 使用java将word文档docx,doc(包含图形,文本框)完美转换成所有格式图片(pdf,png,gif,jpeg等等)
使用java将word文档docx,doc(包含图形,文本框,图片等)完美转换成所有格式图片(pdf,png,gif,jpeg等等)下文中附带代码,效果图等 思路 使用到的包 实现代码 效果图: 思路 ...
- [摘]用Java生成Word文档
开发中隔三叉五的就要用到Word,经常被搞得不胜其烦,不过这次找到了不少好例子,干脆将他们都摘了过来,内容如下: 1. poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这 ...
- Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本
Aspose.Words For .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsof ...
- Word处理控件Aspose.Words功能演示:使用 Java 将 Word 文档转换为 Markdown
大多数智能设备,如智能手机.平板电脑.笔记本电脑等,都支持EPUB格式来查看或阅读文档.它是电子书或电子出版物的常用格式.另一方面,MS Word 格式,如DOCX.DOC等,是数字世界中广泛使用的文 ...
- 用java生成word文档(转载)
用java生成word文档 poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这里提供了更加简单的一个接口给你: 下载经过封装后的poi包: 这个包就是:tm-extrac ...
- java读写word文档,完美解决方案
java读写word文档,完美解决方案 java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库).该组件提供了一组简单的接口,以便java程序调用他的服务操作W ...
最新文章
- vijos 1476 旅游规划题解
- 常看 Shell: 文本文件操作
- 针对连续动作的DQN
- 监控服务器已断开正在自动重连,远程服务器已断开与发送连接器的连接
- boost::mp11::mp_map_update相关用法的测试程序
- ABAP,Java, nodejs和go语言的web server编程
- taskkill 命令:
- quartus仿真18:仿真简单D触发器和JK触发器输出的波形
- 程序员面试金典——3.4汉诺塔
- oracle字典在线查字手写,在线字典手写输入
- 模型汇总-14 多任务学习-Multitask Learning概述
- python 一键登录126邮箱
- 完善:HTML5表单新特征简介与举例——张鑫旭
- 计算机硬件知识应用,计算机硬件知识 (很详细)
- 会玩,有人用 Python 模拟导弹防御!
- 基于java实现bilibili视频爬虫
- python输出宽度是什么意思_python字符串格式化输出的时候类似{0:.3f}是什么意思?...
- Tableau 中国教育水平发展指标历史数据(六)识字率
- 北邮计算机学院男女比例,985大学男女比例,找对象有依据!
- 机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化
热门文章
- typescript全局安装卸载以及npm相关问题
- TwinCAT3读取CSV文件
- 怎么用matlab求特征向量,MATLAB用eig()函数求【特征值】【特征向量】【归一化
- ogre 学习笔记 - Day 7
- 爬虫到底违法吗?这位爬虫工程师给出了答案
- 基于深度学习的分词模块 对新闻的分词准确率高达96%以上
- 楼氏电子推出Raspberry Pi 开发工具包,为新物联网应用和行业语音整合提供支持
- 百度坐标批量转换成WGS84坐标
- video视频相关问题:火狐浏览器报错“没有找到支持的视频格式和MIME类型”
- 我们公司使用了 5 年的系统限流方案 ,从实现到部署实战详解,稳的一B