`

Java 在Word中创建表格

阅读更多

表格作为一种可视化交流模式及组织整理数据的手段,在各种场合及文档中应用广泛。常见的表格可包含文字、图片等元素,我们操作表格时可以插入图片、写入文字及格式化表格样式等。下面,将通过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

2

 

方法2通过maven导入。参考导入方法

 

Java代码示例(供参考)

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);
    }
}

 

表格创建效果:


 

 (本文完)

 

  • 大小: 22.9 KB
  • 大小: 38.9 KB
  • 大小: 41 KB
0
0
分享到:
评论

相关推荐

    Java读取Word中的表格(Excel),并导出文件为Excel

    在Java编程中,有时我们需要处理来自不同文档格式的数据,例如从Word文档中提取表格内容,并将其转换成Excel文件。这通常涉及到使用Apache POI库,一个强大的API,用于读写Microsoft Office格式的文件,包括Word(....

    java 生成word表格包括表格插入图片

    如何用java生成动态word表格,以及在表格中插入图片是一个难题,花了两天时间做出来的,希望对大家有帮助 需要jar包:iText-2.1.7.jar, iText-rtf-2.1.7.jar, iTextAsian.jar和jxl.jar 注意前两个jar包的版本要能...

    java生成word,包括word表格,表格插入图片,jar包都在了

    - 运行Java程序,程序会根据代码逻辑生成Word文档,同时将图片插入到表格中。 这个项目提供了一个完整的解决方案,使得开发者无需深入了解Word文档的内部结构,就能方便地在Java中生成包含表格和图片的Word文档。...

    JAVA根据数据库表生成word表格文档

    在Java编程中,生成Word表格文档通常涉及到使用第三方库,如Apache POI,这是一个流行的API,专门用于处理Microsoft Office格式的文件,包括Word(.doc/.docx)。本篇文章将深入探讨如何使用Java和Apache POI从...

    在word中动态增加表格并写入数据

    本文将详细介绍如何利用C#编程语言实现在Word文档中动态创建表格,并将数据写入到表格中的过程。 #### 前置知识与工具介绍 在开始之前,我们需要对以下概念有所了解: 1. **Microsoft Word API**:这是Microsoft ...

    Java 使用iText生成word文档,有表格,图片,文本有颜色

    在Java开发中,有时我们需要将数据导出为Word文档,以方便阅读和打印。iText是一个流行的库,它允许开发者创建PDF和Word(doc)文件。在这个场景中,我们将探讨如何利用iText来生成包含表格、图片以及带有颜色的文本...

    Java导出Word文件

    在Java编程环境中,导出Word文件是一项常见的任务,特别是在企业级应用中,如报表生成、文档自动化等场景。本文将详细讲解如何使用Java实现Word文件的导出,并结合提供的资源进行解析。 首先,Java导出Word文件通常...

    java替换word中的变量

    在Java编程环境中,替换Word文档中的变量是一项常见的需求,特别是在自动化文档生成或者模板处理的场景中。本知识点将深入探讨如何使用Java实现这一功能,主要涉及的库是Apache POI,这是一个广泛使用的开源库,用于...

    Java 添加Word目录的2种方法示例代码详解

    在本文中,我们将探讨 Java 中添加 Word 目录的两种方法。目录是一种能够快速、有效地帮助读者了解文档或书籍主要内容的方式。在 Word 中,插入目录首先需要设置相应段落的大纲级别,根据大纲级别来生成目录表。 ...

    java2word,java操作word

    Java2Word是一个Java库,主要用于在Java应用程序中创建和编辑Microsoft Word文档。这个工具使得开发者能够在服务器端或者没有Microsoft Office安装的环境中处理Word文档,极大地扩展了Java在文档处理方面的功能。...

    java实现word表格指定位置盖章,并且设置章悬浮于文字之上

    在Java开发中,实现Word表格指定位置盖章并设置章悬浮于文字之上,涉及到的技术主要包括Apache POI库的使用、图像处理以及Word文档对象模型的理解。Apache POI是Java中用于处理Microsoft Office格式文件(如DOCX)的...

    Java通过word模板配置书签生成word

    在Java开发中,生成Word文档是一项常见的需求,特别是在企业级应用中,如报告生成、合同制作等。"Java通过word模板配置书签生成word"是一个技术方案,它利用了Java的API来处理Microsoft Word文档,特别是Apache POI...

    java2word程序代码及jar包

    在本例中,Jacob是连接Java和Microsoft Office的桥梁,使得Java代码能够操作Word对象模型,创建、修改Word文档。Jacob提供了一种方式来与Word交互,如打开、修改、保存和创建新的Word文档。 `Java2Word.jar`则是...

    java使用poi操作.doc word模板替换,循环插入表格

    假设我们有一个数据列表,我们可以在遍历列表的过程中创建表格: ```java public void insertTable(String filePath, List&lt;List&lt;String&gt;&gt; data, int cols) { XWPFDocument document = new XWPFDocument(new ...

    java实现word表格指定位置盖印,并且设置印悬浮于文字之上,达到跟用实体印在A4纸上盖印一样的效果

    在Java编程环境中,实现Word表格指定位置盖印并设置印章悬浮于文字之上,涉及到的技术主要包括Apache POI库的使用、图像处理以及Word文档的操作。Apache POI是Java中广泛使用的微软Office文档处理库,它允许开发者...

    java itext pdf word 中文 表格 图片

    在IT行业中,生成PDF和Word文档通常用于报告、发票、合同等文档的自动化生成,尤其在需要包含中文字符、表格和图片的情况下。iText库不仅支持基本的文本格式化,还支持复杂的布局和多媒体元素。 在生成PDF时,iText...

    用java实现word统计报表和图形统计的导出

    在给定的标题“用java实现word统计报表和图形统计的导出”中,我们可以理解到这个项目或教程旨在教我们如何使用Java来创建包含统计报表和图形的Microsoft Word文档。这通常涉及到两个关键领域:文本处理和数据可视化...

    java实现word表格指定位置盖章,并且设置印章悬浮于文字之上

    在Java编程环境中,实现Word文档中的表格指定位置盖章,并让印章悬浮于文字之上,是一项技术挑战,但可以通过一些库和技巧来实现。这个过程主要涉及到对Word文档内容的读取、修改以及重新保存,同时要确保印章图像不...

    Java根据ftl模板生成多表格复杂性word文档

    例如,你可以创建一个`.ftl`文件,其中包含表格的定义,然后在表格中插入动态数据。 当涉及到多表格的复杂Word文档时,我们需要在FTL模板中定义多个表格,并在运行时填充这些表格的数据。FreeMarker支持多种数据...

Global site tag (gtag.js) - Google Analytics