首页 > 编程语言 >如何利用Java在Word中创建表格

如何利用Java在Word中创建表格

时间:2022-10-20 13:44:38浏览次数:62  
标签:创建表格 Word String get dataRow new Java row

当我们在编辑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,则可以从此链接下载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);
    }
}

 

效果图:

标签:创建表格,Word,String,get,dataRow,new,Java,row
From: https://www.cnblogs.com/Gia-/p/16809578.html

相关文章

  • java学习笔记40
    面向对象static关键字详解静态属性packageoopzong.oop.opp6;//static:在类中使用修饰成员变量,在方法就是成员方法 静态方法和静态属性publicclassStudent{​ ......
  • Java并发编程学习8-同步工具类
    同步工具类同步工具类可以是任意一个对象,只要它根据其自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,类似地还有信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)......
  • 记事本写java程序带汉字时,编辑后发生错误解决办法
    程序中带有汉字,编辑时,出现在notpad中将字符集改为,nasi......
  • 【JavaWeb】一文搞懂Response
    @[Toc]1Response继承体系response和request一样2Response响应2.1响应行方法名方面类型方法作用setStatus(intsc)void设置响应状态码2.2响应头方法名方法类型方法作用se......
  • 【JavaWeb】 一文搞懂Request
     前言Request:获取请求数据Response:设置响应数据1Request的继承体系service(request,response)是由谁创建的?Tomcat。Tomcat需要解析请求数据,封装为request对象,并且创建requ......
  • 【JavaWeb】 Mybatis-01-Mybatis的简介:用对话的方式让你明白为什么要使用Mybatis
    一、什么是Mybatis?MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBati......
  • 配置java环境变量时,javac命令异常解决
    在安装jdk,配置环境变量后,发现java可以正常使用,javac不行。原来是win电脑中,path的配置不能再用;来间隔了,需要换行来显示。......
  • 用 Java?试试国产轻量的 Solon v1.10.7
    Java国产的轻量级应用开发框架。可用来快速开发Java应用项目。主框架仅0.1MB。Helloworld:@ControllerpublicclassApp{publicstaticvoidmain(String[]ar......
  • java生成指定范围的随机整数
    intmax=5;intmin=2;形成过程0:intsaleNumber=(int)(Math.random()*(max));//0~4 , Math.random()返回[0,max)形成过程1:intsaleNumber=(int)(Math.random......
  • javascript编程题:js实现三子棋
    今天做了一题编程题,题干很复杂:公元208年,曹操发兵攻打荆州,刘备派诸葛亮到东吴,说服了孙权。孙刘两家联合起来共同抵抗曹军。这年冬天,孙刘大军在赤壁与曹军隔江对峙。曹军将......