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

Java實(shí)現(xiàn)將導(dǎo)出帶格式的Excel數(shù)據(jù)到Word表格

 更新時(shí)間:2022年11月11日 16:46:26   作者:E-iceblue  
在Word中制作報(bào)表時(shí),我們經(jīng)常需要將Excel中的數(shù)據(jù)復(fù)制粘貼到Word中,這樣則可以直接在Word文檔中查看數(shù)據(jù)而無(wú)需打開(kāi)另一個(gè)Excel文件。本文將通過(guò)Java應(yīng)用程序詳細(xì)介紹如何把帶格式的Excel數(shù)據(jù)導(dǎo)入Word表格。希望這篇文章能對(duì)大家有所幫助

在Word中制作報(bào)表時(shí),我們經(jīng)常需要將Excel中的數(shù)據(jù)復(fù)制粘貼到Word中,這樣則可以直接在Word文檔中查看數(shù)據(jù)而無(wú)需打開(kāi)另一個(gè)Excel文件。但是如果表格比較長(zhǎng),內(nèi)容就會(huì)存在一定程度的丟失,無(wú)法完整顯示數(shù)據(jù)。并且當(dāng)工作量到達(dá)一定程度時(shí),整個(gè)過(guò)程會(huì)非常費(fèi)時(shí),降低工作效率。那么如何輕松地將帶格式的 Excel 數(shù)據(jù)導(dǎo)出到 Word 表格呢?不用擔(dān)心,本文將通過(guò)Java應(yīng)用程序詳細(xì)介紹如何把帶格式的Excel數(shù)據(jù)導(dǎo)入Word表格。希望這篇文章能對(duì)大家有所幫助。

使用工具Free Spire.Office for Java

程序環(huán)境:

方法1:手動(dòng)引入。將 Free Spire.Office for Java 下載到本地,解壓,找到lib文件夾下的Spire.XLS.jar文件。在IDEA中打開(kāi)如下界面,將本地路徑中的jar文件引入Java程序

方法2: 如果您想通過(guò) Maven安裝,則可以在 pom.xml 文件中添加以下代碼導(dǎo)入 JAR 文件。

<repositories>

    <repository>

        <id>com.e-iceblue</id>

        <name>e-iceblue</name>

        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>

    </repository>

</repositories>

<dependencies>

    <dependency>

        <groupId>e-iceblue</groupId>

        <artifactId>spire.office.free</artifactId>

        <version>5.3.1</version>

    </dependency>

</dependencies>

具體步驟:

  • 創(chuàng)建一個(gè) Workbook 對(duì)象并使用 Workbook.LoadFromFile() 方法加載一個(gè)示例 Excel 文件。
  • 通過(guò) Workbook.Worksheets[index] 屬性獲取特定的工作表。
  • 創(chuàng)建一個(gè) Document 對(duì)象,并向其添加一個(gè)節(jié)。
  • 使用 Section.AddTable() 方法添加一個(gè)表。
  • 檢測(cè)工作表中合并的單元格,并使用自定義方法 MergeCells() 合并 Word表格相應(yīng)的單元格。
  • 通過(guò) CellRange.Value 屬性獲取特定 Excel 單元格的值,并使用 TableCell.AddParagraph().AppendText() 方法將其添加到 Word 表格的單元格中。
  • 使用自定義方法 CopyStyle() 將字體樣式和單元格樣式從 Excel 復(fù)制到 Word 表格中。
  • 使用 Document.SaveToFile() 方法將文檔保存到 Word 文件。

完整代碼:

【Java】

import com.spire.doc.*;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.PageOrientation;
import com.spire.doc.documents.VerticalAlignment;
import com.spire.doc.fields.TextRange;
import com.spire.xls.*;

public class ExportExcelToWord {

    public static void main(String[] args) {

        //下載一個(gè)Excel文件
        Workbook workbook = new Workbook();
        workbook.loadFromFile("sample.xlsx");

        //得到第一張工作表
        Worksheet sheet = workbook.getWorksheets().get(0);

        //創(chuàng)建一個(gè)Word文檔
        Document doc = new Document();
        Section section = doc.addSection();
        section.getPageSetup().setOrientation(PageOrientation.Landscape);

        //添加一個(gè)表格
        Table table = section.addTable(true);
        table.resetCells(sheet.getLastRow(), sheet.getLastColumn());

        //合并單元格
        mergeCells(sheet, table);

        for (int r = 1; r <= sheet.getLastRow(); r++) {

            //設(shè)置行高
            table.getRows().get(r - 1).setHeight((float) sheet.getRowHeight(r));

            for (int c = 1; c <= sheet.getLastColumn(); c++) {
                CellRange xCell = sheet.getCellRange(r, c);
                TableCell wCell = table.get(r - 1, c - 1);

                //獲得特定Excel單元格的值并將其添加到Word表格單元格
                TextRange textRange = wCell.addParagraph().appendText(xCell.getValue());

                // 從Excel復(fù)制字體和單元格樣式到Word
                copyStyle(textRange, xCell, wCell);
            }
        }

        //保存文檔為Word文件
        doc.saveToFile("ExportToWord.docx", FileFormat.Docx);
    }

    //如果有合并的區(qū)域,則合并單元格
    private static void mergeCells(Worksheet sheet, Table table) {
        if (sheet.hasMergedCells()) {

            //從Excel中獲取合并的單元格范圍
            CellRange[] ranges = sheet.getMergedCells();
            for (int i = 0; i < ranges.length; i++) {
                int startRow = ranges[i].getRow();
                int startColumn = ranges[i].getColumn();
                int rowCount = ranges[i].getRowCount();
                int columnCount = ranges[i].getColumnCount();

                //合并Word表格中的對(duì)應(yīng)單元格
                if (rowCount > 1 && columnCount > 1) {
                    for (int j = startRow; j <= startRow + rowCount ; j++) {
                        table.applyHorizontalMerge(j - 1, startColumn - 1, startColumn - 1 + columnCount - 1);
                    }
                    table.applyVerticalMerge(startColumn - 1, startRow - 1, startRow - 1 + rowCount - 1 );
                }
                if (rowCount > 1 && columnCount == 1 ) {
                    table.applyVerticalMerge(startColumn - 1, startRow - 1, startRow - 1 + rowCount - 1);
                }
                if (columnCount > 1 && rowCount == 1 ) {
                    table.applyHorizontalMerge(startRow - 1, startColumn - 1,  startColumn - 1 + columnCount-1);
                }
            }
        }
    }

    //復(fù)制Excel單元格樣式到Word表格
    private static void copyStyle(TextRange wTextRange, CellRange xCell, TableCell wCell) {

        //復(fù)制字體樣式
        wTextRange.getCharacterFormat().setTextColor(xCell.getStyle().getFont().getColor());
        wTextRange.getCharacterFormat().setFontSize((float) xCell.getStyle().getFont().getSize());
        wTextRange.getCharacterFormat().setFontName(xCell.getStyle().getFont().getFontName());
        wTextRange.getCharacterFormat().setBold(xCell.getStyle().getFont().isBold());
        wTextRange.getCharacterFormat().setItalic(xCell.getStyle().getFont().isItalic());

        //復(fù)制背景色
        wCell.getCellFormat().setBackColor(xCell.getStyle().getColor());

        //復(fù)制水平對(duì)齊方式
        switch (xCell.getHorizontalAlignment()) {
            case Left:
                wTextRange.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Left);
                break;
            case Center:
                wTextRange.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
                break;
            case Right:
                wTextRange.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Right);
                break;
        }

        //復(fù)制垂直對(duì)齊方式
        switch (xCell.getVerticalAlignment()) {
            case Bottom:
                wCell.getCellFormat().setVerticalAlignment(VerticalAlignment.Bottom);
                break;
            case Center:
                wCell.getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
                break;
            case Top:
                wCell.getCellFormat().setVerticalAlignment(VerticalAlignment.Top);
                break;
        }
    }
}

效果圖

到此這篇關(guān)于Java實(shí)現(xiàn)將導(dǎo)出帶格式的Excel數(shù)據(jù)到Word表格的文章就介紹到這了,更多相關(guān)Java導(dǎo)出Excel數(shù)據(jù)到Word內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解MybatisPlus集成nacos導(dǎo)致druid連接不上數(shù)據(jù)庫(kù)

    詳解MybatisPlus集成nacos導(dǎo)致druid連接不上數(shù)據(jù)庫(kù)

    這篇文章主要介紹了詳解MybatisPlus集成nacos導(dǎo)致druid連接不上數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • SpringBoot項(xiàng)目Jar包如何瘦身部署的實(shí)現(xiàn)

    SpringBoot項(xiàng)目Jar包如何瘦身部署的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot項(xiàng)目Jar包如何瘦身部署的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java正則表達(dá)式匹配所有數(shù)字的案例

    java正則表達(dá)式匹配所有數(shù)字的案例

    這篇文章主要介紹了java正則表達(dá)式匹配所有數(shù)字的案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Java中獲取泛型類型信息的方法

    Java中獲取泛型類型信息的方法

    本文主要介紹了Java中獲取泛型類型信息的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 將java程序打包成可執(zhí)行文件的實(shí)現(xiàn)方式

    將java程序打包成可執(zhí)行文件的實(shí)現(xiàn)方式

    本文介紹了將Java程序打包成可執(zhí)行文件的三種方法:手動(dòng)打包(將編譯后的代碼及JRE運(yùn)行環(huán)境一起打包),使用第三方打包工具(如Launch4j)和JDK自帶工具(jpackage),每種方法都有其優(yōu)缺點(diǎn),可根據(jù)實(shí)際需求選擇合適的方式
    2025-02-02
  • SpringBoot中如何打印Http請(qǐng)求日志

    SpringBoot中如何打印Http請(qǐng)求日志

    所有針對(duì)第三方的請(qǐng)求都強(qiáng)烈推薦打印請(qǐng)求日志,本文主要介紹了SpringBoot中如何打印Http請(qǐng)求日志,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • 淺析 Java多線程

    淺析 Java多線程

    這篇文章主要介紹了Java多線程的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java線程相關(guān)知識(shí),感興趣的朋友可以了解下
    2020-09-09
  • springboot實(shí)現(xiàn)圖片上傳與下載功能

    springboot實(shí)現(xiàn)圖片上傳與下載功能

    這篇文章主要為大家詳細(xì)介紹了后端spring項(xiàng)目經(jīng)常要做的功能,實(shí)現(xiàn)圖片上傳和下載,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 以Spring Boot的方式顯示圖片或下載文件到瀏覽器的示例代碼

    以Spring Boot的方式顯示圖片或下載文件到瀏覽器的示例代碼

    這篇文章主要介紹了以Spring Boot的方式顯示圖片或下載文件到瀏覽器的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java利用泛型實(shí)現(xiàn)折半查找法

    Java利用泛型實(shí)現(xiàn)折半查找法

    泛型是JAVA重要的特性,使用泛型編程,可以使代碼復(fù)用率提高。查找作為泛型的一個(gè)簡(jiǎn)單應(yīng)用,本文將使用泛型實(shí)現(xiàn)折半查找法,感興趣的可以了解一下
    2022-08-08

最新評(píng)論

临高县| 宁德市| 山东省| 象州县| 梁河县| 淳安县| 桑植县| 东丰县| 太保市| 新和县| 宁蒗| 阿尔山市| 万全县| 青铜峡市| 秀山| 宁陕县| 盐津县| 泸溪县| 永泰县| 五大连池市| 昭苏县| 贵港市| 新沂市| 广西| 类乌齐县| 同仁县| 封开县| 集安市| 仁化县| 托里县| 长宁区| 应城市| 西乌| 南充市| 晋城| 许昌市| 女性| 隆回县| 游戏| 绥化市| 红安县|