• Java 获取、删除Word文本框中的表格


    本文介绍如何来获取Word文本框中包含的表格,以及删除表格。

    程序测试环境包括:

    • IDEA
    • JDK 1.8.0
    • Spire.Doc.jar

    :jar导入,可通过创建Maven程序项目,并在pom.xml中配置Maven仓库路径,并指定Free Spire.Doc for Java的Maven依赖,点击“Import Changes”即可导入JAR包。(如果使用的Eclipse, 点击保存按钮导入),配置如下:

    <repositories>
            <repository>
                <id>com.e-iceblue</id>
                <url>http://repo.e-iceblue.cn/repository/maven-public/</url>
            </repository>
    </repositories>
    
    <dependencies>
        <dependency>
      <groupId>e-iceblue</groupId>
      <artifactId>spire.doc.free</artifactId>
      <version>2.7.3</version>
    </dependency>
    </dependencies>

    导入效果:

    另外,也可通过下载jar包,手动导入Spire.Doc.jar到Java程序。

    Word测试文档如下,包含一个表格:

    Java代码

    1. 获取Word文本框中的表格

    import com.spire.doc.*;
    import com.spire.doc.documents.Paragraph;
    import com.spire.doc.fields.TextBox;
    
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class ExtractTable {
        public static void main(String[]args) throws IOException {
            //加载Word测试文档
            Document doc = new Document();
            doc.loadFromFile("test.docx");
    
            //获取第一个文本框
            TextBox textbox = doc.getTextBoxes().get(0);
    
            //获取文本框中第一个表格
            Table table = textbox.getBody().getTables().get(0);
    
            //保存文本
            String output = "EtractTableFromTextbox.txt";
            File file = new File(output);
            if (!file.exists()) {
                file.delete();
            }
            file.createNewFile();
            FileWriter fw = new FileWriter(file, true);
            BufferedWriter bw = new BufferedWriter(fw);
    
            //遍历表格中的段落并提取文本
            for (int i = 0; i < table.getRows().getCount(); i++) {
                TableRow row = table.getRows().get(i);
                for (int j = 0; j < row.getCells().getCount(); j++) {
                    TableCell cell = row.getCells().get(j);
                    for (int k = 0; k < cell.getParagraphs().getCount(); k++) {
                        Paragraph paragraph = cell.getParagraphs().get(k);
                        bw.write(paragraph.getText() + "	");
                    }
                }
                bw.write("
    ");
            }
    
            bw.flush();
            bw.close();
            fw.close();
        }
    }

    表格内容获取结果:

    2. 删除Word文本框中的表格

    import com.spire.doc.*;
    import com.spire.doc.fields.TextBox;
    
    public class DeleteTableInTextbox {
        public static void main(String[] args) {
            //加载Word测试文档
            Document doc = new Document();
            doc.loadFromFile("test.docx");
    
            //获取第一个文本框
            TextBox textbox = doc.getTextBoxes().get(0);
    
            //获取文本框中第一个表格
            textbox.getBody().getTables().get(0);
    
            //删除第一个表格
            textbox.getBody().getTables().removeAt(0);
    
            //保存文档
            doc.saveToFile("DeleteTableInTextbox.docx", FileFormat.Docx_2013);
            doc.dispose();
        }
    }

    表格删除结果:

  • 相关阅读:
    $.getJSON异步请求和同步请求
    Jquery中click事件重复执行的问题
    明白JavaScript原型链和JavaScrip继承
    利用canvas对上传图片进行上传前压缩
    webpack打包多html开发案例
    移动端的picker参考vux
    Vue于React特性简单对比(一)
    移动端调试和fiddler移动端抓包使用
    开发过程中的关键思维方法
    js移动端滑块验证解锁组件
  • 原文地址:https://www.cnblogs.com/Yesi/p/13560004.html
Copyright © 2020-2023  润新知