序言

各位好啊,我是会编程的蜗牛,作为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写了半天也没搞定,用这个框架几分钟就搞定了,推荐。

推荐阅读 点击标题可跳转

Tabby,一款老外都在用的 SSH工具,竟然还支持网页操作
IDEA 调试起来太费劲?你需要了解这几招!

如何用VMWARE创建一个Linux虚拟机

java程序员在交接别人的工作时如何保证顺利交接?

如何用Virtualbox搭建一个虚拟机

如何使用Java在Word中插入表格相关推荐

  1. java poi word 表格,HWPF-POI:用Java在Word中插入表格

    I want to create a table in Word with POI-HWPF (e.g. doc format). My example code is: Table table = ...

  2. 计算机绘制表格教案,word中插入表格教案

    篇一:word中插入表格教学反思 <Word表格的制作>教学反思 计算机课程对于培养学生的科学精神.创新精神和实践能力,提高学生对信息社会的适应能力等方面都具有重要的意义.在计算机课的教学 ...

  3. Java在Word中插入上标和下标

    前言 在某些情况下,你可能需要在Microsoft Word中插入上标和下标.例如,当你正在创建一个涉及科学公式的学术文件时.在这篇文章中,你将学习如何使用Spire.Doc for Java库在Wo ...

  4. word课程表设置符号与编号_6上 第1课 我的课程表——word中插入表格教案.doc

    6上 第1课 我的课程表--word中插入表格教案.doc 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 1制 作 我 的 课 程 表 -- ...

  5. Java向word中插入Excel文件对象

    前言: 在word文件中,虽然也有表格.但是有时我们想要将Excel中表格的大量数据直接插入到word文档中,这就需要用到word的插入对象的功能,也就是直接将Excel文件当做对象插入到word中. ...

  6. java向word中插入Excel附件

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

  7. java中插入表格_java 集成 pageoffice 实现在 word 中插入表格并赋值

    Word中的table操作需要借助数据区域(DataRegion)实现的,要求数据区域完整的包含了整个Table的内容,这样才可以通过数据区域控制和操作table.因此,要想使用table,则必须在w ...

  8. java读取word中的表格并存入到mysql数据库中实例

    将D://word_export.doc(word2003)文件中表格数据读取出来并存入到数据库中.表格数据如下图所示: 20064001 刘景玉 1987-01-25 男 河南商丘 20064002 ...

  9. Word中插入表格与柱状图饼状图技术经验分享

    最近公司一个项目里要求自动生成报告功能,研究了1周多,主要实现方式是通过调用微软Office COM组件来实现操作word文档,生成段落,表格,及各种图表. 本人发现操作word地方也有几个坑人的地方 ...

最新文章

  1. “三电一兽”竞争格局将打破,网络营销外包下搜电开启高效运营
  2. Android的Activity生命周期模拟程序及解析
  3. Kindle使用技巧
  4. 云时代,我们需要怎样的数据库?
  5. es6 遍历数组对象获取所有的id_ES6对象遍历Object.keys()方法
  6. npm eject 暴露webpack报错,less或sass添加报错
  7. 简单的用户登录(一)
  8. 个人信用报告“数字解读”与妙用
  9. Bochs 调试命令
  10. wincc怎么做数据库_wincc 数据库
  11. ceph 对接openstack mitaka
  12. Eclipse中修改SVN地址
  13. 开课吧:什么是排序算法
  14. Machine Learning 务实----Applying deep learning to real-world problems
  15. proteus部分元件中英对照
  16. 为了背单词,我花了两天写了一款背单词小程序
  17. Windows设置自动关机
  18. springboot整合ldap
  19. Linux SD卡驱动
  20. Mysql 索引 与 多表查询性能优化

热门文章

  1. 计算机中丢失granny2,granny2.dll
  2. python环境变量
  3. 网民告腾讯公司 索赔4万Q币和445个5位QQ号
  4. Coursera | Applied Plotting, Charting Data Representation in Python(UMich)| Assignment2
  5. Ultimate Rope Editor,绳索插件教程
  6. pychrm设置全局代理
  7. java个人小管家代码_Java程序设计基础—Java小管家系统构建
  8. GCC Libquadmath库介绍
  9. gcc 生成动态链接库
  10. 6-5 使用函数求余弦函数的近似值 (15分)