序言
各位好啊,我是会编程的蜗牛,作为java开发者,有时候需要操作word或者excel。这里面比较常用的框架是POI,我之前用过POI来读写excel,也有用过alibaba easy excel来读写excel,还都挺好用的。
不过对于word的操作就比较少了,基本的文本操作用poi应该也是可以实现的。但对于复杂的操作,像在word里面插入表格等,就有点力不从心了。
今天介绍一款github上开源的框架,Free Spire.Doc,它对于word的操作还是很方便,没有像POI那样需要写一大堆代码,非常简洁高效。
本文来源:infoQ,作者:Geek_249eec,整理:会编程的蜗牛
 
当我们在编辑 Word 文档时,如果遇到大量数据需要体现,可以选择直接在 Word 文档中创建表格。将数据应用于表格内,不仅能够简化文档语言,而且也可以使数据内容更加清晰、直观。下面我就将使用Free Spire.Doc for Java演示如何在 Java 中创建 Word 表格。
安装 Spire.Doc.Jar
方法一:
如果您使用的是 maven,可以通过添加以下代码到项目的 pom.xml 文件中,将 JAR 文件导入到应用程序中。
<repositories>

    <repository>

        <id>com.e-iceblue</id>

        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

    </repository>

</repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.doc.free</artifactId>

        <version>5.2.0</version>

    </dependency>

</dependencies>
方法二:
如果您没有使用 maven,则可以从https://www.e-iceblue.cn/Downloads/Free-Spire-Doc-JAVA.html下载 Free Spire.Doc for Java,找到 lib 文件夹下的 Spire.Doc.jar 并进行解压。
然后在 IDEA 中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR 文件或路径”(JARs or Directories),找到解压后的 Spire.Doc.jar 文件,点击确认,将其导入到项目中。
在 Word 中创建表格:
具体操作步骤:
  • 创建一个 Document 对象,并向其添加一个节。
  • 将标题行和其他行的数据分别存储在一维字符串数组和二维字符串数组中。
  • 使用 Section.addTable() 方法将表格添加到节。
  • 将数据插入标题行,并设置行格式,包括行高、背景颜色和文本对齐方式。
  • 将数据插入其余行,并对这些行应用格式。
  • 使用 Document.saveToFile() 方法保存文件。
相关代码:
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.TextRange; import java.awt.*; public class CreateTable
{ public static void main(String[] args)
{ //创建一个Document对象
Document document = new Document(); //添加一个节
Section section = document.addSection(); //定义表格数据
String[] header = { "学号", "姓名", "性别", "班级", "成绩" };
String[][] data =
{
new String[]{"0105", "李雷", "男", "1", "88"},
new String[]{"0721", "赵文", "女", "7", "92"},
new String[]{"1131", "陈华", "女", "11", "91"},
new String[]{"0418", "宋野", "男", "4", "95"},
new String[]{"0513", "韩梅", "女", "5", "94"},
}; //添加表格
Table table = section.addTable(true);
table.resetCells(data.length + 1, header.length); //将第一行设置为表格标题
TableRow row = table.getRows().get(0);
row.isHeader(true);
row.setHeight(20);
row.setHeightType(TableRowHeightType.Exactly);
row.getRowFormat().setBackColor(Color.gray);
for (int i = 0; i < header.length; i++)
{
row.getCells().get(i).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
Paragraph p = row.getCells().get(i).addParagraph();
p.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
TextRange txtRange = p.appendText(header[i]);
txtRange.getCharacterFormat().setBold(true);
} //将数据添加到其余行
for (int r = 0; r < data.length; r++)
{
TableRow dataRow = table.getRows().get(r + 1);
dataRow.setHeight(25);
dataRow.setHeightType(TableRowHeightType.Exactly);
dataRow.getRowFormat().setBackColor(Color.white);
for (int c = 0; c < data[r].length; c++)
{
dataRow.getCells().get(c).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
dataRow.getCells().get(c).addParagraph().appendText(data[r][c]);
}
} //设置单元格的背景颜色
for (int j = 1; j < table.getRows().getCount(); j++)
{
if (j % 2 == 0)
{
TableRow row2 = table.getRows().get(j);
for (int f = 0; f < row2.getCells().getCount(); f++)
{
row2.getCells().get(f).getCellFormat().setBackColor(new Color(173, 216, 230));
}
}
} //保存结果文件
document.saveToFile("result.docx", FileFormat.Docx_2013);
}
}
效果图展示:
 
总结
使用Free Spire.Doc for Java,可以大大简化我们操作word,是一款非常值得推荐的开源框架,我之前就用这个框架解决了一个数据填充的问题,这个用POI写了半天也没搞定,用这个框架几分钟就搞定了,推荐。
推荐阅读 点击标题可跳转
 
我整理的干货,回复【JAVA核心】获取《JAVA核心面试知识整理》

如何使用Java在Word中插入表格的更多相关文章

  1. java向word中插入Excel附件

    1.word中插入对象的原理 编辑word,向word中插入图片.EXCEL.WORD等附件,再将word保存为xml格式,通过XML查看工具打开xml格式的word的源码,通过对比源码, 可以发现平 ...

  2. Java读取word中表格

    因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...

  3. [转载]Java给word中的table赋值

    一.准备工作: 下载PageOffice for  Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...

  4. [原创]Java给word中的table赋值

    一.准备工作: 下载PageOffice for  Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...

  5. 教你如何将word中的表格完美粘贴到ppt中

    经常操作办公软件的人一定有一个困惑,ppt本身表格编辑能力似乎很弱,如果从word里直接将一个编辑好的表格复制粘贴到ppt中,整个表格一定会发生让你没有预料的变化,还得重新花老大的劲去重新编辑,有人屛 ...

  6. 怎样在Word中插入代码并保持代码原始样式不变

    怎样在Word中插入代码并保持样式不变 我们有时候需要在word中添加一段我们写的代码,但是把代码粘贴到word文档中之后就发现所有的代码的样子都变了,我们可以采用下边的方法来实现保持代码原来的样式和 ...

  7. 使用EndNote在Word中插入参考文献的格式设置

    endnote其实自带了很多参考文献格式的样式,如下图,但往往跟我们要使用的会有所出入,本文主要介绍的就是设置自定义endnote参考文献格式,以endnote X6和word2003为例,其它版本以 ...

  8. word模板导出的几种方式:第一种:占位符替换模板导出(只适用于word中含有表格形式的)

    1.占位符替换模板导出(只适用于word中含有表格形式的): /// <summary> /// 使用替换模板进行到处word文件 /// </summary> public ...

  9. word中插入myth type公式行距变大的问题

    在写文章时,我遇到了在word中插入myth type公式时,行距明显变大的问题,我通过改变段落中的行距没有解决问题,在网上查了一下,找到一些解决方法,仅供参考. 解决办法

  10. Delphi读取不Word中不规则表格数据并转换成标准表格

    程序需要,需要将word中不规则的表格数据转换为标准的表格,即合并的单元格按正常格式解析,word中的表格格式如下: 解析后数据如下: 借鉴了网上代码,如下处理: procedure TfrmMain ...

随机推荐

  1. EF6/EFCore Code-First Timestamp SQL Server

    EF 6和EF Core都包含TimeStamp数据注解特性.它只能用在实体的byte数组类型的属性上,并且只能用在一个byte数组类型的属性上.然后在数据库中,创建timestamp数据类型的列,在 ...

  2. STL 算法 <algorithm>,

    STL 算法部分主要由头文件 <algorithm>,<numeric>,<functional > 组成.要使用 STL 中的算法函数必须包含头文件 < a ...

  3. 记录荒废了三年的四年.net开发的第二次面试(进复试了)

    这次面试的是小公司,深圳计通智能,面试分为初试和复试.使用腾讯视频会议完成.相比与上次面试,这次有所进步,进复试了.当然,这可能也与面试风格有关.这次面试着重与项目经历和技术,因此回答比较顺畅. 这一 ...

  4. 映射lun

    环境 VMware1 网卡与 主机ping通 创建文件夹将文件解压进去 删除压缩包 创建虚拟机 下一步下一步,完成虚拟机 编辑虚拟机设置 否 账号密码 admin Admin@storage 等待 导 ...

  5. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-62 - 判断元素是否可操作

    1.简介 有些页面元素的生命周期如同流星一闪,昙花一现.我们也不知道这个元素在没在页面中出现过,为了捕获这一美好瞬间,让其成为永恒.我们就来判断元素是否显示出现过. 在操作元素之前,可以先判断元素的状 ...

  6. 【Mybatis】记录下一些问题

    报错信息: 找不到映射的结果Map 其实这里的包的名字和资源的名字都是正确的 但是啊,但是啊,在Mapper.xml上面的命名空间的声明上换行了,这就能导致Mybatis找不到这个资源: 我和同事看了 ...

  7. 【Java】Maven模块化工程SSM整合

    创建数据库一个演示表User CREATE TABLE `user` ( `id` int NOT NULL AUTO_INCREMENT, `name` varchar(64) DEFAULT NU ...

  8. Windows11重置后出现Windows.old文件夹无法删除,报错C:\Windows.old\WINDOWS\System32\WDI - 目录不是空的。Win11系统Windows.old能删除吗?Windows.old怎么删

    问题: Windows11重置后出现Windows.old文件夹无法删除,报错C:\Windows.old\WINDOWS\System32\WDI - 目录不是空的. 网上的各种方法均不奏效: ht ...

  9. 哈哈哈,我就说未来要研发无人的AI潜艇嘛 —— 说啥来啥 —— AI驱动的无人潜艇

    相关: 沉默5个月后,美国对华发出挑战书,万没想到,中方打法早就变了

  10. 远程采集服务器指标信息(一) 远程通过SSH执行命令

    远程采集服务器信息,比如说磁盘信息.内存信息. 现介绍java通过SSH执行命令采集服务器信息,比如说执行df.ls.top. /** * * SSH远程执行shell类 */ public clas ...