(3条消息) 使用POI给word中的表格增加行

需求:有一个给定的word文档,文档中有一个表格,该表格只有一个标题行。现在根据数据为表格增加行,并保留表格线条。

如下表格所示:

字段1 字段2 字段3 字段4 字段5 字段6

修改后的效果:

字段1 字段2 字段3 字段4 字段5 字段6
... ... ... ... ... ...
... ... ... ... ... ...
... ... ... ... ... ...

方案:使用POI读取并操作word文档。

代码:

poi使用两种方式操作word文档,理论上两种方式都是可以达到目标的,这里使用XWPFDocument方式实现表格的操作,参考以下代码:

//读取word源文件FileInputStream fileInputStream = new FileInputStream("d:/xxx.docx");// POIFSFileSystem pfs = new POIFSFileSystem(fileInputStream);XWPFDocument document = new XWPFDocument(fileInputStream);//获取所有表格List<XWPFTable> tables = document.getTables();//这里简单取第一个表格XWPFTable table = tables.get(0);//获取表头,这里没什么用,只是打印验证下XWPFTableRow header = table.getRow(0);//表格的插入行有两种方式,这里使用addNewRowBetween,因为这样会保留表格的样式,就像我们在word文档的表格中插入行一样。注意这里不要使用insertNewTableRow方法插入新行,这样插入的新行没有样式,很难看table.addNewRowBetween(0, 1);//获取到刚刚插入的行XWPFTableRow row=table.getRow(1);//设置单元格内容row.getCell(0).setText("11111");System.out.println(header.getCell(0).getText());fileInputStream.close();//写到目标文件OutputStream output = new FileOutputStream("d:/xxx_new.docx");document.write(output);output.close();

小结:

上述代码实现了类似模板的功能,将word源文件当做模板,然后往模板表格中插入数据,最后保存。

转自:http://www.findsrc.com/java/detail/8669

(0)

相关推荐

  • excel复制到word的表格如何适应

    excel复制到word的表格如何适应呢?下面是具体操作方法. 打开一个WPS Word文档,并从excel中将表格复制过来. 单击选中整个表格. 单击工具栏上的表格工具. 单击选择自动调整,在下拉列 ...

  • WORD文档中图标的标题和目录

    "引用"->"插入题注",标签选择"Table",就可以为表格标题插入题注: "引用"->"插入表 ...

  • (3条消息) java poi操作word转pdf

    替换word文档内容 package com.docx.test; import org.apache.poi.xwpf.usermodel.*; import org.junit.Test; imp ...

  • (59条消息) 终于讲清楚了nodejs中exports和module.exports的区别

    module.exports 对象是由模块系统创建的.在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容,module.exports 提供了暴露接口的方法. 1.返回一 ...

  • (1条消息) Android Studio在Gradle中调用cmd脚本

    Gradle中调用cmd 需要在Gradle编译时,调用某些脚本进行文件操作,比如:头文件更新,或者动态链接库文件的更新等,需要借助脚本文件,并且不需要手动运行,那么如何使用Gradle呢? 如下代码 ...

  • (3条消息) Linux(CentOS7)中安装JDK

    目录 1.下载Oralce JDK 2.卸载Open JDK 2.1.检查一下系统中的jdk版本 2.2.检测jdk安装包 2.3.卸载openjdk 3.上传下载好的Oralce JDK到Linux ...

  • (6条消息) mysql取出每个分组中最新的记录

    原文:深度分析mysql GROUP BY 与 ORDER BY.mysql取出每个分组中最新的记录.mysql 分组取最新的一条记录(整条记录) 1.建表.插入测试数据 CREATE TABLE ` ...

  • (5条消息) VC++学习之VC中常见问题

    (1)为什么某个类突然在工作区间里面突然看不见了? 只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了 (2)在基于对话框的程序中,一按 ...

  • (1条消息) m x n 网格中的最小路径和

    在上一篇中,我们通过分析,顺利完成了"三角形最小路径和"的动态规划题解.在本节中,我们继续看一道相似题型,以求能完全掌握这种"路径和"的问题.话不多说,先看题目 ...

  • (36条消息) EasyWeChat在laravel框架中的使用技巧

    EasyWeChat在laravel框架中的使用技巧 laravel框架实战: EasyWeChat 文章目录 EasyWeChat公众号配置 报错:Failed to cache access to ...

  • (10条消息) Android:LinearLayout布局中Layout

    首先看一下LinearLayout布局中Layout_weight属性的作用:它是用来分配属于空间的一个属性,你可以设置他的权重.很多人不知道剩余空间是个什么概念,下面我先来说说剩余空间. 看下面代码 ...