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文档的操作相关推荐

  1. Java对Word文档进行操作

    JACOB(java -com bridge)是一个 JAVA到微软的COM接口的桥梁.使用JACOB允许任何JVM访问COM对象,从而使JAVA应用程序能够调用COM对象. 一.提取文件地址: ht ...

  2. java用poi导出word,Java使用POI导出Word文档的操作教程,poiword

    Java使用POI导出Word文档的操作教程,poiword 一.主要pom依赖 org.apache.poi poi-ooxml 3.16 二.需要导出word模板 三.相关导出代码 package ...

  3. 【使用分享】一文掌握Aspose.Words for Java,实现Word文档的生成与操作

    Aspose.Words for Java是一个功能强大的Java Word文档处理组件,支持文档的生成.修改.转换.渲染等功能.本文将为您全面介绍Aspose.Words的主要功能与用法. 一.文档 ...

  4. 使用java将word文档docx,doc(包含图形,文本框)完美转换成所有格式图片(pdf,png,gif,jpeg等等)

    使用java将word文档docx,doc(包含图形,文本框,图片等)完美转换成所有格式图片(pdf,png,gif,jpeg等等)下文中附带代码,效果图等 思路 使用到的包 实现代码 效果图: 思路 ...

  5. [摘]用Java生成Word文档

    开发中隔三叉五的就要用到Word,经常被搞得不胜其烦,不过这次找到了不少好例子,干脆将他们都摘了过来,内容如下: 1. poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这 ...

  6. Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本

    Aspose.Words For .NET是一种高级Word文档处理API,用于执行各种文档管理和操作任务.API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsof ...

  7. Word处理控件Aspose.Words功能演示:使用 Java 将 Word 文档转换为 Markdown

    大多数智能设备,如智能手机.平板电脑.笔记本电脑等,都支持EPUB格式来查看或阅读文档.它是电子书或电子出版物的常用格式.另一方面,MS Word 格式,如DOCX.DOC等,是数字世界中广泛使用的文 ...

  8. 用java生成word文档(转载)

    用java生成word文档 poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这里提供了更加简单的一个接口给你: 下载经过封装后的poi包: 这个包就是:tm-extrac ...

  9. java读写word文档,完美解决方案

    java读写word文档,完美解决方案 java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库).该组件提供了一组简单的接口,以便java程序调用他的服务操作W ...

最新文章

  1. vijos 1476 旅游规划题解
  2. 常看 Shell: 文本文件操作
  3. 针对连续动作的DQN
  4. 监控服务器已断开正在自动重连,远程服务器已断开与发送连接器的连接
  5. boost::mp11::mp_map_update相关用法的测试程序
  6. ABAP,Java, nodejs和go语言的web server编程
  7. taskkill 命令:
  8. quartus仿真18:仿真简单D触发器和JK触发器输出的波形
  9. 程序员面试金典——3.4汉诺塔
  10. oracle字典在线查字手写,在线字典手写输入
  11. 模型汇总-14 多任务学习-Multitask Learning概述
  12. python 一键登录126邮箱
  13. 完善:HTML5表单新特征简介与举例——张鑫旭
  14. 计算机硬件知识应用,计算机硬件知识 (很详细)
  15. 会玩,有人用 Python 模拟导弹防御!
  16. 基于java实现bilibili视频爬虫
  17. python输出宽度是什么意思_python字符串格式化输出的时候类似{0:.3f}是什么意思?...
  18. Tableau 中国教育水平发展指标历史数据(六)识字率
  19. 北邮计算机学院男女比例,985大学男女比例,找对象有依据!
  20. 机器学习与深度学习——通过knn算法分类鸢尾花数据集iris求出错误率并进行可视化

热门文章

  1. typescript全局安装卸载以及npm相关问题
  2. TwinCAT3读取CSV文件
  3. 怎么用matlab求特征向量,MATLAB用eig()函数求【特征值】【特征向量】【归一化
  4. ogre 学习笔记 - Day 7
  5. 爬虫到底违法吗?这位爬虫工程师给出了答案
  6. 基于深度学习的分词模块 对新闻的分词准确率高达96%以上
  7. 楼氏电子推出Raspberry Pi 开发工具包,为新物联网应用和行业语音整合提供支持
  8. 百度坐标批量转换成WGS84坐标
  9. video视频相关问题:火狐浏览器报错“没有找到支持的视频格式和MIME类型”
  10. 我们公司使用了 5 年的系统限流方案 ,从实现到部署实战详解,稳的一B