最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)提取Word文檔表格數據

 更新時間:2025年01月26日 08:24:38   作者:Eiceblue  
使用Java實現(xiàn)Word文檔表格數據的提取,可以確保數據處理的一致性和準確性,同時大大減少所需的時間和成本,下面我們來看看具體實現(xiàn)方法吧

Word文檔作為一種廣泛使用的文件格式,常常承載著豐富的表格信息,這些信息可能涉及到財務報表、項目規(guī)劃、實驗數據記錄等多方面內容。將這些表格數據提取出來,能夠方便進行數據分析以及內容再創(chuàng)作等場景。通過使用Java實現(xiàn)Word文檔表格數據的提取,可以確保數據處理的一致性和準確性,同時大大減少所需的時間和成本。本文將介紹如何使用Java提取Word文檔中的表格數據。

本文所使用的方法需要用到免費的Free Spire.Doc for Java,Maven:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependency>
    <groupId>e-iceblue</groupId>
    <artifactId>spire.doc.free</artifactId>
    <version>5.3.2</version>
</dependency>

用Java提取Word文檔表格到文本文件

我們可以使用庫中的Section.getTables()方法從Word文檔的各個節(jié)中獲取表格,然后再遍歷表格的行和列,獲取表格中的段落文本,從而實現(xiàn)Word文檔表格數據的提取。以下是操作步驟示例:

  • 創(chuàng)建Document對象并從文件加載Word文檔。
  • 遍歷文檔各節(jié),使用Section.getTables()訪問其中的表格。
  • 遍歷每個表格的行和單元格,提取文本內容。
  • 將提取的文本添加到StringBuilder。
  • 輸出或保存StringBuilder中的內容。

代碼示例:

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;

import java.io.FileWriter;
import java.io.IOException;

public class ExtractWordTable {
    public static void main(String[] args) {
        // 創(chuàng)建一個文檔對象
        Document doc = new Document();

        try {
            // 加載一個Word文檔
            doc.loadFromFile("GSample.docx");

            // 遍歷文檔中的各節(jié)
            for (int i = 0; i < doc.getSections().getCount(); i++) {
                // 獲取一節(jié)
                Section section = doc.getSections().get(i);
                // 遍歷該節(jié)中的表格
                for (int j = 0; j < section.getTables().getCount(); j++) {
                    // 獲取一個表格
                    Table table = section.getTables().get(j);
                    // 收集所有表格內容
                    StringBuilder tableText = new StringBuilder();
                    for (int k = 0; k < table.getRows().getCount(); k++) {
                        // 獲取一行
                        TableRow row = table.getRows().get(k);
                        // 遍歷行中的單元格
                        StringBuilder rowText = new StringBuilder();
                        for (int l = 0; l < row.getCells().getCount(); l++) {
                            // 獲取一個單元格
                            TableCell cell = row.getCells().get(l);
                            // 遍歷段落以獲取單元格中的文本
                            String cellText = "";
                            for (int m = 0; m < cell.getParagraphs().getCount(); m++) {
                                Paragraph paragraph = cell.getParagraphs().get(m);
                                cellText += paragraph.getText() + " ";
                            }
                            if (l < row.getCells().getCount() - 1) {
                                rowText.append(cellText).append("\t");
                            } else {
                                rowText.append(cellText).append("\n");
                            }
                        }
                        tableText.append(rowText);
                    }

                    // 使用try-with-resources將表格文本寫入文件
                    try (FileWriter writer = new FileWriter("output/Tables/Section-" + (i + 1) + "-Table-" + (j + 1) + ".txt")) {
                        writer.write(tableText.toString());
                    }
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

結果

用Java提取Word文檔表格到Excel文件

我們還可以將提取數據的方法與Free Spire.XLS for Java結合,將提取到的表格數據直接寫入到Excel工作表中,從而實現(xiàn)Word文檔表格到Excel工作表的提取。以下是操作步驟:

  • 創(chuàng)建Document和Workbook對象,移除Workbook的默認工作表。
  • 從Word文檔加載內容到Document,并遍歷各節(jié)與表格。
  • 每遇到一個表格,就使用Workbook.getWordksheets().add()方法添加一個新工作表。
  • 遍歷表格的行和單元格,提取文本內容。
  • 使用Worksheet.getRange().get().setValue()方法將提取的文本寫入對應工作表的單元格,并設置格式。
  • 保存Workbook為Excel文件。

代碼示例

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;

public class ExtractWordTableToExcel {
    public static void main(String[] args) {
        // 創(chuàng)建Document對象
        Document doc = new Document();

        // 創(chuàng)建Workbook對象
        Workbook workbook = new Workbook();
        // 刪除默認的工作表
        workbook.getWorksheets().clear();

        try {
            // 加載Word文檔
            doc.loadFromFile("Sample.docx");

            // 遍歷文檔中的各節(jié)
            for (int i = 0; i < doc.getSections().getCount(); i++) {
                // 獲取一節(jié)
                Section section = doc.getSections().get(i);
                // 遍歷該節(jié)中的表格
                for (int j = 0; j < section.getTables().getCount(); j++) {
                    // 獲取一個表格
                    Table table = section.getTables().get(j);
                    // 為每個表格創(chuàng)建一個工作表
                    Worksheet sheet = workbook.getWorksheets().add("Section-" + (i + 1) + "-Table-" + (j + 1));
                    for (int k = 0; k < table.getRows().getCount(); k++) {
                        // 獲取一行
                        TableRow row = table.getRows().get(k);
                        for (int l = 0; l < row.getCells().getCount(); l++) {
                            // 獲取一個單元格
                            TableCell cell = row.getCells().get(l);
                            // 遍歷單元格中的段落以獲取文本
                            String cellText = "";
                            for (int m = 0; m < cell.getParagraphs().getCount(); m++) {
                                Paragraph paragraph = cell.getParagraphs().get(m);
                                if (m > 0 && m < cell.getParagraphs().getCount() - 1) {
                                    cellText += paragraph.getText() + "\n";
                                } else {
                                    cellText += paragraph.getText();
                                }
                                // 將單元格的文本寫入對應的Excel工作表的單元格中
                                sheet.getRange().get(k + 1, l + 1).setValue(cellText);
                            }
                            // 自動調整列寬
                            sheet.autoFitColumn(l + 1);
                        }
                    }
                }
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        // 保存為Excel文件
        workbook.saveToFile("output/WordTableToExcel.xlsx", FileFormat.Version2016);
        // 釋放資源
        workbook.dispose();
    }
}

結果

到此這篇關于Java實現(xiàn)提取Word文檔表格數據的文章就介紹到這了,更多相關Java提取Word數據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • List集合對象中按照不同屬性大小排序的實例

    List集合對象中按照不同屬性大小排序的實例

    下面小編就為大家?guī)硪黄狶ist集合對象中按照不同屬性大小排序的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • spring依賴注入深入理解

    spring依賴注入深入理解

    這篇文章主要介紹了spring依賴注入深入理解,列舉了最常見的注入方式,有感興趣的同學可以研究下
    2021-03-03
  • Java計時新姿勢StopWatch的使用方法詳解

    Java計時新姿勢StopWatch的使用方法詳解

    這篇文章主要給大家介紹了關于Java計時新姿勢StopWatch的相關資料,以及java 中使用StopWatch來計算時間差的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • Java中使用fastjson設置字段不序列化

    Java中使用fastjson設置字段不序列化

    這篇文章主要介紹了Java中使用fastjson設置字段不序列化,alibaba的fasetjson可以設置字段不序列化,使用@JSONField注解的serialize屬性,該屬性默認是可以序列化的,設置成false就表示不可序列化,需要的朋友可以參考下
    2023-12-12
  • JAVA Spring Boot 自動配置實現(xiàn)原理詳解

    JAVA Spring Boot 自動配置實現(xiàn)原理詳解

    這篇文章主要介紹了詳解SpringBoot自動配置原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • druid的keepalive機制源碼解析

    druid的keepalive機制源碼解析

    這篇文章主要為大家介紹了druid的keepalive機制源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • springboot讀取application.yml報錯問題及解決

    springboot讀取application.yml報錯問題及解決

    這篇文章主要介紹了springboot讀取application.yml報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java開發(fā)必備的三大修飾符

    Java開發(fā)必備的三大修飾符

    JAVA的三個修飾:static,final,abstract,在JAVA語言里無處不在,但是它們都能修飾什么組件,修飾組件的含義又有什么限制,總是混淆.所以來總結一下,需要的朋友可以參考下
    2021-06-06
  • Java連接Mysql數據庫詳細代碼實例

    Java連接Mysql數據庫詳細代碼實例

    這篇文章主要介紹了Java連接Mysql數據庫詳細代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • IntelliJ IDEA2020.2.2創(chuàng)建Servlet方法及404問題

    IntelliJ IDEA2020.2.2創(chuàng)建Servlet方法及404問題

    這篇文章主要介紹了IntelliJ IDEA2020.2.2創(chuàng)建Servlet方法及404問題,這里小編使用的2020.2.2企業(yè)破解版本,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09

最新評論

华宁县| 武安市| 邓州市| 中卫市| 铜鼓县| 麦盖提县| 沙田区| 休宁县| 昆山市| 喜德县| 恩施市| 定陶县| 神木县| 商河县| 永吉县| 秭归县| 西乌| 汉阴县| 天长市| 南溪县| 阿图什市| 岗巴县| 石嘴山市| 连江县| 乌恰县| 左云县| 佛冈县| 拉萨市| 色达县| 蓝田县| 东方市| 邢台市| 靖远县| 安平县| 灌云县| 柳河县| 奎屯市| 翁牛特旗| 施秉县| 无为县| 澎湖县|