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

Java使用Spire.XLS for Java拆分Excel的實戰(zhàn)教程

 更新時間:2026年02月03日 09:51:15   作者:用戶033212666367  
在日常數(shù)據(jù)處理中,Excel文件承載著海量信息,然而,面對包含多工作表、超長行數(shù)或需要按特定列進行分類的巨型Excel文件時,手動拆分無疑是一場噩夢,本文將深入探討如何利用Java強大的編程能力,結(jié)合Spire.XLS for Java庫,高效、精準地完成Excel文件的拆分任務

在日常數(shù)據(jù)處理中,Excel 文件承載著海量信息。然而,面對包含多工作表、超長行數(shù)或需要按特定列進行分類的巨型 Excel 文件時,手動拆分無疑是一場噩夢,效率低下且容易出錯。作為開發(fā)者,我們追求自動化和效率。本文將深入探討如何利用 Java 強大的編程能力,結(jié)合 Spire.XLS for Java 庫,高效、精準地完成 Excel 文件的拆分任務,讓數(shù)據(jù)處理變得輕而易舉。無論您是需要將一個 Excel 文件按工作表拆分為多個獨立文件,還是需要將一個工作表按行或按列拆分成更小的單元,本教程都將為您提供清晰、可操作的解決方案。

一、Spire.XLS for Java 簡介與環(huán)境配置

Spire.XLS for Java 是一個功能全面、高性能的 Java Excel API,允許開發(fā)者在 Java 應用程序中創(chuàng)建、讀取、編輯、轉(zhuǎn)換和打印 Excel 文件。它支持多種 Excel 格式(XLS、XLSX、CSV、ODS 等),提供了豐富的特性,包括但不限于單元格操作、樣式設置、圖表、數(shù)據(jù)透 視表、公式計算等。對于 Excel 拆分這種常見的自動化需求,Spire.XLS for Java 提供了直觀且強大的 API 接口。

1. 安裝依賴

要在您的 Java 項目中使用 Spire.XLS for Java,最便捷的方式是通過 Maven 添加其依賴。

Maven:

  <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.xls</artifactId>
        <version>16.1.3</version>
    </dependency>
</dependencies>

將上述配置添加到您的 pom.xml 文件中,然后重新加載項目依賴即可。

二、按工作表拆分 Excel 文件

最常見的拆分需求是將一個包含多個工作表的 Excel 文件,拆分成多個獨立的 Excel 文件,每個文件只包含原文件中的一個工作表。

import com.spire.xls.FileFormat;  
import com.spire.xls.Workbook;  
  
public class SplitExcel {  
  
    public static void main(String[] args) {  
  
        // 創(chuàng)建 Workbook 對象  
        Workbook wb = new Workbook();  
  
        // 加載 Excel 文檔  
        wb.loadFromFile("/input/世界各洲人口前十國家.xlsx");  
  
        // 聲明 Workbook 變量  
        Workbook newWb;  
  
        // 聲明 String 類型變量  
        String sheetName;  
  
        // 指定拆分生成的文檔的存放路徑  
        String folderPath = "/output/按表拆分/";  
  
        // 遍歷所有工作表  
        for (int i = 0; i < wb.getWorksheets().getCount(); i++) {  
  
            // 初始化 Workbook 對象  
            newWb = new Workbook();  
  
            // 刪除默認工作表  
            newWb.getWorksheets().clear();  
  
            // 將源文檔中的指定工作表復制到新的 Workbook  
            newWb.getWorksheets().addCopy(wb.getWorksheets().get(i));  
  
            // 獲取工作表表名  
            sheetName = wb.getWorksheets().get(i).getName();  
  
            // 將新的 Workbook 保存為 Excel 文檔  
            newWb.saveToFile(folderPath + sheetName + ".xlsx", FileFormat.Version2013);  
        }  
    }  
}

關(guān)鍵代碼解析:

  1. workbook.loadFromFile("input.xlsx"):加載待處理的 Excel 文件。
  2. workbook.getWorksheets().getCount():獲取工作表的總數(shù)。
  3. workbook.getWorksheets().get(i):獲取指定索引的工作表。
  4. newWb.getWorksheets().addCopy():將原始工作表復制到新創(chuàng)建的 Workbook 對象中。
  5. newWorkbook.saveToFile(outputFileName):將包含單個工作表的新工作簿保存為獨立文件。

三、按行拆分 Excel 工作表

當單個工作表數(shù)據(jù)量過大時,我們可能需要將其按行數(shù)或特定條件拆分成多個工作表或新的 Excel 文件。這里演示按固定行數(shù)拆分。

import com.spire.xls.*;  
import java.util.EnumSet;  
  
public class spiltexcel {  
    public static void main(String[] args) {  
        // 設置文件的輸入和輸出路徑  
        String sourceFile = "/input/世界各洲人口前十國家.xlsx";  
        String folderPath = "/output/";  
  
        // 創(chuàng)建一個 Workbook 類的對象并加載 Excel 文件  
        Workbook workbook = new Workbook();  
        workbook.loadFromFile(sourceFile);  
        // 獲取源文件的第一個工作表  
        Worksheet sheet = workbook.getWorksheets().get(0);  
  
        // 創(chuàng)建新的工作簿作為目標文件并清除默認工作表  
        Workbook newWorkbook1 = new Workbook();  
        newWorkbook1.getWorksheets().clear();  
        // 在目標文件新增一個工作表  
        Worksheet newSheet1 = newWorkbook1.getWorksheets().add("Sheet1");  
  
        // 將源文件第一個工作表的第1-5行復制到目標文件中  
        int destRow1 = 1;  
        for (int i = 0; i < 5; i++) {  
            sheet.copyRow(sheet.getRows()[i], newSheet1, destRow1++, EnumSet.of(CopyRangeOptions.All));  
        }  
        copyColumnWidths(sheet, newSheet1);  
        newWorkbook1.saveToFile(folderPath + "1-5行.xlsx", ExcelVersion.Version2016);  
  
        // 創(chuàng)建新的工作簿作為目標文件 2 并清除默認工作表  
        Workbook newWorkbook2 = new Workbook();  
        newWorkbook2.getWorksheets().clear();  
        // 在目標文件 2 新增一個工作表  
        Worksheet newSheet2 = newWorkbook2.getWorksheets().add("Sheet1");  
  
        int destRow2 = 1;  
        // 復制表頭  
        sheet.copyRow(sheet.getRows()[0], newSheet2, destRow2++, EnumSet.of(CopyRangeOptions.All));  
  
        // 將源文件第一個工作表的第6-10行復制到目標文件中  
        for (int i = 5; i < 10; i++) {  
            sheet.copyRow(sheet.getRows()[i], newSheet2, destRow2++, EnumSet.of(CopyRangeOptions.All));  
        }  
        copyColumnWidths(sheet, newSheet2);  
        newWorkbook2.saveToFile(folderPath + "6-10行.xlsx", ExcelVersion.Version2016);  
    }  
  
    private static void copyColumnWidths(Worksheet source, Worksheet dest) {  
        for (int i = 0; i < source.getColumns().length; i++) {  
            dest.setColumnWidth(i + 1, source.getColumnWidth(i + 1));  
        }  
    }  
}

關(guān)鍵代碼解析:

  1. sheet.getRows():獲取源工作表的指定行。
  2. sheet.copyRow():將剛才獲取到的行復制到新的工作表中。
  3. 循環(huán)遍歷源工作表,每次復制 rowsPerSheet 行的數(shù)據(jù)(包括標題行)到一個新的工作簿中。
  4. saveToFile():保存修改后的 Excel 文件。

四、按列拆分 Excel 工作表

除了按行拆分,有時我們還需要將一個工作表按列拆分成多個文件,例如將原始數(shù)據(jù)按某些關(guān)鍵列進行分組。這里演示按固定列數(shù)拆分。

import com.spire.xls.*;  
import java.util.EnumSet;  
  
public class SplitExcel {  
    public static void main(String[] args) {  
        // 創(chuàng)建 Workbook 對象并加載 Excel 文件  
        Workbook workbook = new Workbook();  
        workbook.loadFromFile("/input/世界各洲人口前十國家.xlsx");  
  
        // 獲取原始(第一個)工作表  
        Worksheet worksheet = workbook.getWorksheets().get(0);  
  
        // 指定生成的 Excel 文件的文件夾路徑  
        String folderPath = "/output/";  
  
        // 創(chuàng)建新的 Workbook,刪除默認工作表并添加新的工作表  
        Workbook newWorkbook1 = new Workbook();  
        newWorkbook1.getWorksheets().clear();  
        Worksheet newWorksheet1 = newWorkbook1.getWorksheets().add("Sheet1");  
  
        // 從原始工作表復制第 1-2 列到新工作表  
        for (int i = 1; i <= 2; i++) {  
            // 參數(shù):源列,目標表,目標起始列索引,復制選項  
            worksheet.copyColumn(worksheet.getColumns()[i - 1], newWorksheet1, newWorksheet1.getLastDataColumn() + 1, EnumSet.of(CopyRangeOptions.All));  
        }  
        // 復制行高以保持樣式一致  
        for (int i = 0; i < worksheet.getRows().length; i++) {  
            newWorksheet1.setRowHeight(i + 1, worksheet.getRowHeight(i + 1));  
        }  
        newWorkbook1.saveToFile(folderPath + "AB列.xlsx", ExcelVersion.Version2016);  
        newWorkbook1.dispose();  
  
        // 創(chuàng)建新的 Workbook,刪除默認工作表并添加新的工作表  
        Workbook newWorkbook2 = new Workbook();  
        newWorkbook2.getWorksheets().clear();  
        Worksheet newWorksheet2 = newWorkbook2.getWorksheets().add("Sheet1");  
  
        // 從原始工作表復制第 3-4 列到新工作表  
        for (int i = 3; i <= 4; i++) {  
            worksheet.copyColumn(worksheet.getColumns()[i - 1], newWorksheet2, newWorksheet2.getLastDataColumn() + 1, EnumSet.of(CopyRangeOptions.All));  
        }  
        // 復制行高  
        for (int i = 0; i < worksheet.getRows().length; i++) {  
            newWorksheet2.setRowHeight(i + 1, worksheet.getRowHeight(i + 1));  
        }  
        newWorkbook2.saveToFile(folderPath + "CD列.xlsx", ExcelVersion.Version2016);  
        newWorkbook2.dispose();  
    }  
}

關(guān)鍵代碼解析:

  1. worksheet.getColumns():獲取源工作表的指定列。
  2. worksheet.copyColumn():將獲取到的列復制到新的工作表中。
  3. saveToFile() 保存修改后的 Excel 文件。

五、結(jié)語

通過本文的詳細教程,我們深入了解了如何利用 Spire.XLS for Java 庫在 Java 應用程序中高效地拆分 Excel 文件。無論是按工作表、按行還是按列進行拆分,Spire.XLS for Java 都提供了簡潔而強大的 API,極大地簡化了復雜的 Excel 處理任務。它的高性能和豐富功能使其成為 Java 開發(fā)者處理 Excel 文件的理想選擇。希望這些示例代碼能幫助您在實際項目中實現(xiàn) Excel 自動化處理,提升工作效率。鼓勵大家嘗試探索 Spire.XLS for Java 的更多功能,發(fā)現(xiàn)它在數(shù)據(jù)處理領域的無限潛力!

以上就是Java使用Spire.XLS for Java拆分Excel的實戰(zhàn)教程的詳細內(nèi)容,更多關(guān)于Java拆分Excel教程的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

焉耆| 建瓯市| 东乡| 新和县| 宜春市| 广元市| 青岛市| 九寨沟县| 永嘉县| 博湖县| 马公市| 东辽县| 论坛| 枝江市| 青田县| 黑河市| 遵化市| 肇东市| 乌什县| 永胜县| 盐津县| 尉氏县| 广昌县| 满洲里市| 德安县| 大姚县| 武胜县| 习水县| 恩施市| 大石桥市| 华坪县| 大新县| 麻栗坡县| 绩溪县| 宝兴县| 积石山| 五原县| 灌阳县| 买车| 亳州市| 南城县|