Java 在Word中创建表格

Java生成可控的Word表格功能开发 本文探讨了如何利用Java开发一个可控的Word表格生成功能模块,以满足日常办公自动化和系统集成中的结构化文档生成需求。文章首先概述了Word表格生成的应用场景,如合同、报价单、ERP报告等,强调了自动化生成的重要性。接着,对比了主流Java处理Word的技术方案,推荐使用Apache POI(XWPF)作为首选工具,因其开源、稳定且文档丰富。文章详细介绍了如何通过Apache POI实现Word表格生成,包括Maven依赖的引入、核心代码的实现以及表格样式的控制。此外,还提供了功能增强建议,如动态数据与 阅读详情

表格作为一种可视化交流模式及组织整理数据的手段,在各种场合及文档中应用广泛。常见的表格可包含文字、图片等元素,我们操作表格时可以插入图片、写入文字及格式化表格样式等。下面,将通过Java编程在Word文档中创建表格并实现格式化操作,包括设置字体、字号、字体颜色、字体粗细等,设置单元格对齐方式、单元格背景色、单元格合并、设置表格边框样式、插入图片等。

使用工具:Free Spire.Doc for Java 2.0.0 (免费版)

Jar文件导入

方法1:首先通过官网获取jar包。下载控件包并解压。

导入步骤:在程序中新建一个directory目录,并命名(本示例中命名为lib);将控件包lib文件夹下的Spire.Doc.jar文件(如下图1)复制到程序中新建的目录下。复制jar文件后,鼠标右键点击jar文件,选择”Add as Library”。完成导入(如下图2)。

图1

[图片上传失败...(image-732b36-1650460012542)]

图2

[图片上传失败...(image-2d308-1650460012542)]

方法2:**通过maven导入。

Java代码示例(供参考)

** Step 1:** 创建文档

Document doc = new Document();
Section sec = doc.addSection();

**Step 2:**声明数组内容

//声明数组内容
String[] header = {"班级","姓名","性别", "学号", "专业成绩"};
String[][] data = { new String[]{"一班","王丽", "女", "Y1256486", "138"}, new String[]{"一班","洪菲菲", "女", "Y5425875", "134"}, new String[]{"二班","刘洋", "男", "B1546258", "141"}, new String[]{"三班","冯刚", "男", "B1542367", "136"}, new String[]{"三班","刘思源", "男", "Z1263547", "133"},
        };

**Step 3:**添加表格并写入数据

//添加表格
Table table = sec.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.ORANGE); 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 range1 = p.appendText(header[i]);
    range1.getCharacterFormat().setFontName("Arial");
    range1.getCharacterFormat().setFontSize(12f);
    range1.getCharacterFormat().setBold(true);
    range1.getCharacterFormat().setTextColor(Color.white);
} //写入剩余组内容到表格,并格式化数据
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);
        TextRange range2 = dataRow.getCells().get(c).addParagraph().appendText(data[r][c]);
        range2.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
        range2.getCharacterFormat().setFontName("Arial");
        range2.getCharacterFormat().setFontSize(10f);
    }
}

Step 4:合并单元格

table.applyVerticalMerge(0,1,2);
table.applyVerticalMerge(0,4,5);

**Step 5:**插入图片到单元格

DocPicture dp = table.getRows().get(1).getCells().get(0).addParagraph().appendPicture("1.png");
dp.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

**Step 6:**设置单元格背景色

for (int j = 1; j < table.getRows().getCount(); j++) { if (j % 2 == 0) {
        TableRow row2 = table.getRows().get(j); for (int f = 1; f < row2.getCells().getCount(); f++) {
            row2.getCells().get(f).getCellFormat().setBackColor(new Color(144,238,144));
        }
    }
}

**Step 7:**设置表格边框样式

table.getTableFormat().getBorders().setBorderType(BorderStyle.Thick_Thin_Large_Gap);

Step 8: 保存文档

doc.saveToFile("CreateTable.docx", FileFormat.Docx_2013);

表格创建效果:

[图片上传失败...(image-4b76a6-1650460012540)]

** 全部代码:**

import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;
import java.awt.*;

public class CreateTable {
    public static void main(String[] args){
        //创建Document对象
        Document doc = new Document();
        Section sec = doc.addSection();

        //声明数组内容
        String[] header = {"班级","姓名","性别", "学号", "专业成绩"};
        String[][] data =
                {
                        new String[]{"一班","王丽", "女", "Y1256486", "138"},
                        new String[]{"一班","洪菲菲", "女", "Y5425875", "134"},
                        new String[]{"二班","刘洋", "男", "B1546258", "141"},
                        new String[]{"三班","冯刚", "男", "B1542367", "136"},
                        new String[]{"三班","刘思源", "男", "Z1263547", "133"},
                };

        //添加表格
        Table table = sec.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.ORANGE);
        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 range1 = p.appendText(header[i]);
            range1.getCharacterFormat().setFontName("Arial");
            range1.getCharacterFormat().setFontSize(12f);
            range1.getCharacterFormat().setBold(true);
            range1.getCharacterFormat().setTextColor(Color.white);
        }

        //写入剩余组内容到表格,并格式化数据
        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);
                TextRange range2 = dataRow.getCells().get(c).addParagraph().appendText(data[r][c]);
                range2.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
                range2.getCharacterFormat().setFontName("Arial");
                range2.getCharacterFormat().setFontSize(10f);
            }
        }

        //纵向合并指定单元格
        table.applyVerticalMerge(0,1,2);
        table.applyVerticalMerge(0,4,5);

        //插入图片到指定单元格
        DocPicture dp = table.getRows().get(1).getCells().get(0).addParagraph().appendPicture("1.png");
        dp.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);

        //设置单元格背景颜色
        for (int j = 1; j < table.getRows().getCount(); j++) {
            if (j % 2 == 0) {
                TableRow row2 = table.getRows().get(j);
                for (int f = 1; f < row2.getCells().getCount(); f++) {
                    row2.getCells().get(f).getCellFormat().setBackColor(new Color(144,238,144));
                }
            }
        }

        //设置表格边框样式
        table.getTableFormat().getBorders().setBorderType(BorderStyle.Thick_Thin_Large_Gap);

        //保存文档
        doc.saveToFile("CreateTable.docx", FileFormat.Docx_2013);
    }

}

最近整理了一系列的Java面试题,包含了Java基础、进阶、多线程、并发编程、数据库(MySQL、Redis、MongoDB、Memcachedd等等)、Spring全家桶、MyBatis、ZooKeeper、Dubbo、Elasticsearch、RabbitMQ、Kafka、Linux、Netty、Tomcat以及阿里、腾讯、字节、百度等大厂的面试真题,另外可以微信搜索539413949获取我为大家准备的资料

如何通过Java应用程序创建Word表格 表格,又称为表,既是一种可视化交流模式,又是一种组织整理数据的手段。人们在通讯交流、科学研究以及数据分析活动当中广泛采用着形形色色的表格。那么如何通过Java应用程序创建Word表格呢?别担心,本文将详细为您介绍通过Java应用程序创建Word表格。下面是我整理的思路以及具体步骤,并附上Java代码供大家参考。使用工具: [Free Spire.Doc for Java] (免费版) 阅读详情

相关推荐

从CPU缓存模型到JMM来理解volatile关键字,涨薪7K!

前言 很多同学想进大厂,特别是刚毕业的,以及工作年限短的,不要有任何侥幸心理,踏踏实实的把基础弄扎实了,这是你通往高薪之路的唯一正确姿势。 首先从面试题做起~好了,不多说了,直接上正菜。 Java基础 JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什么作用? java 中的 Math.round(-1.5) 等于多少? String 属于基础的数据类型吗? ja

m0_56662547的博客 530

JavaWord创建表格

表格作为一种可视化交流模式及组织整理数据的手段,在各种场合及文档中应用广泛。常见的表格可包含文字、图片等元素,我们操作表格时可以插入图片、写入文字及格式化表格样式等。下面,将通过Java编程在Word文档中创建表格并实现格式化操作,包括设置字体、字号、字体颜色、字体粗细等,设置单元格对齐方式、单元格背景色、单元格合并、设置表格边框样式、插入图片等。 使用工具:Free Spire.Do...

akn76920的博客 619

拼多多笔试真题-多多送快递(C++/Py/Java /Js/Go)

拼多多技术岗笔试 8月2号真题,拼多多笔试第三题【多多送快递】,提供详细思路讲解以及Java、C++、Python、Go、JavaScript多语言代码实现。拼多多笔试真题【多多送快递】多语言题解。

qq_45776114的博客 265

java生成word文档(表格生成

java生成word文档(表格生成

m0_47944994的博客 4049

java word表格_JavaWord创建表格

表格作为一种可视化交流模式及组织整理数据的手段,在各种场合及文档中应用广泛。常见的表格可包含文字、图片等元素,我们操作表格时可以插入图片、写入文字及格式化表格样式等。下面,将通过Java编程在Word文档中创建表格并实现格式化操作,包括设置字体、字号、字体颜色、字体粗细等,设置单元格对齐方式、单元格背景色、单元格合并、设置表格边框样式、插入图片等。使用工具:Free Spire.Doc for J...

weixin_28760171的博客 780

java word创建表格_JavaWord创建表格

import com.spire.doc.*;import com.spire.doc.documents.*;importcom.spire.doc.fields.TextRange;import java.awt.*;public classCreateTable {public static voidmain(String[] args) {//创建Word文档Document docume...

weixin_30651409的博客 674

借助文档控件Aspose.Words,使用 JavaWord 文档中创建表格

在这篇博文中,我们将探讨如何在 Java 应用程序中在 Word 文档中创建表格

励志做最业余的专业博主,控件产品可以私我~ 3092

java table 某列字体颜色_JavaWord创建表格

表格作为一种可视化交流模式及组织、整理数据的方法,在各种场合及文档中应用广泛。常见的表格可包含文字、图片等元素,我们操作表格时可以插入图片、写入文字及格式化表格样式等。下面,将通过Java编程在Word文档中创建表格并实现格式化操作,包括设置字体、字号、字体颜色、字体粗细等,设置单元格对齐方式、单元格背景色、单元格合并/拆分、表格边框样式、插入图片等等。使用工具:Free Spire.Doc fo...

weixin_31411427的博客 635

JAVA table word_JavaWord创建表格

import com.spire.doc.*;import com.spire.doc.documents.*;importcom.spire.doc.fields.TextRange;import java.awt.*;public classCreateTable {public static voidmain(String[] args) {//创建Word文档Document docume...

weixin_39702480的博客 152

java通过poi操作word创建表格

【代码】java通过poi操作word创建表格

u011244410的专栏 4906

使用Java反射在word文件中创建表格填充数据

使用反射,自动填充表格数据到word文件

跃志的博客 1146

java操作Word创建表格表格合并,添加图片,插入字符,

jar <dependency> <groupId>net.sf.jacob-project</groupId> <artifactId>jacob</artifactId> <version>1.14.3</version> </dependency> package com.example.demo.test2; import java

fjmlch的博客 833

java gui设置jtable文字居中_JavaWord创建表格

表格作为一种可视化交流模式及组织、整理数据的方法,在各种场合及文档中应用广泛。常见的表格可包含文字、图片等元素,我们操作表格时可以插入图片、写入文字及格式化表格样式等。下面,将通过Java编程在Word文档中创建表格并实现格式化操作,包括设置字体、字号、字体颜色、字体粗细等,设置单元格对齐方式、单元格背景色、单元格合并/拆分、表格边框样式、插入图片等等。使用工具:Free Spire.Doc fo...

weixin_40002336的博客 290

java word操作总结

java word操作总结

peterxiaoq的专栏 3268

无涯教程-POI Word - 创建表格

要在Word文档中创建表,无涯教程可以使用包中的类。Apache POI又添加了一个类用于创建行。看到,下面使用Java程序Word文档中创建了一个表。

无涯教程 431

Verilog HDL 100道面试题及参考答案

在 Verilog HDL 中,参数(parameter)和宏定义(define)都可用于定义常量,但它们存在诸多不同之处。参数(parameter)是模块内部的常量定义,具有局部性。它在模块内部起作用,不同模块可以有同名的参数,且值可以不同。参数通常用于定义模块的一些配置信息,例如数据位宽、延迟时间等。参数的定义和使用是在模块的作用域内进行的,通过参数传递可以方便地对模块进行配置。endmodule在上述代码中,WIDTH是一个参数,用于定义加法器的位宽。通过改变WIDTH。

大模型大数据攻城狮的专栏 1659

这篇文章详细介绍了舰载机阻拦着舰系统的建模与仿真过程,涵盖了从基础理论到具体实现以及结果分析的多个方面(论文复现含详细代码及解释)

内容概要:本文详细介绍了舰载机阻拦着舰系统的建模与仿真过程,基于MATLAB/Simulink平台实现。文章首先阐述了MK7-3型液压阻拦系统的工作原理,包括阻拦索、滑轮缓冲系统、液压制动系统和控制系统的主要数学模型。然后,逐步构建了Simulink仿真模型,涵盖了从输入条件模块到力计算子系统的完整架构。通过对标准情况、不同质量和偏航情况的仿真分析,验证了系统的有效性、质量适应性和偏航纠偏能力。此外,还进行了不同初速度、不同质量以及偏航情况下的仿真对比,并与美军标MK7-3曲线进行对比验证。最后,通过多方向运动参数分析、阻拦索受力分析和安全可靠性验证,全面评估了系统的动态特性和安全性。适用人群:航空航天领域研究人员、高校师生、军事装备工程师及相关专业的研究生。使用场景及目标:①用于教学和科研,帮助学生和研究人员理解舰载机阻拦着舰系统的原理和技术细节;②为工程师提供设计参考,优化现有系统性能;③支持军事装备的研发和测试,确保系统的可靠性和安全性。其他说明:本文不仅提供了详细的建模与仿真步骤,还结合了大量实际工程案例和参考文献,确保了模型的准确性和实用性。同时,文中还探讨了系统的改进方向和工业应用前景,提出了基于PLC控制、故障诊断、电液混合阻拦系统等创新方案,为未来的研究和发展指明了路径。

上一篇: Java 添加Word文本水印、图片水印
下一篇: Java 添加Word目录的2种方法
Dale Lucy
博客等级 码龄5年 30粉丝 · 136原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值