如在 Java 中分割 Excel 工作表

如在 Java 中分割 Excel 工作表

前言

在Excel中創建的大多數商業報告不是單頁的文檔,而是包含了多個上下文相關的信息,這些信息被存儲在多個工作表中。例如我們的一些地區銷售報告、按部門分類的員工記錄、每家店鋪的庫存清單等。

然而,隨着Excel文件中工作表數量的增加,要在單一文檔內導航和管理數據會變得十分具有挑戰性。此外,因爲這些Excel文檔包含了並非所有相關方都應看到的信息,所以在不同的相關方之間共享這樣的Excel文檔不是一個合理的方案。因此,有必要將這些多工作表的Excel文檔分割成若干個較小的文檔,以便更容易管理、提高效率和數據隔離。

儘管Excel在功能上佔據主導地位,但它不提供原生的函數來分割工作表。你需要手動進行此操作,或者使用VBA。雖然手動方法效率低且容易出錯,但VBA方法會使文件變得容易受攻擊。

GrapeCity Documents for Excel(以下簡稱 GcExcel )提供了幾種通過Java語言編程的方法,可以將Excel文件中的多個工作表分割成獨立的Excel文檔,例如:

  • 通過從源工作簿複製到目標工作簿來分割工作表
  • 通過從源工作簿移動到目標工作簿來分割工作表
  • 通過從源文件刪除不需要的工作表並將其另存爲新文檔來分割工作表
  • 通過從源到目標工作簿複製並粘貼內容等方式分割工作表

在這篇博客中,小編將爲大家介紹如何通過編程方法將工作表從源工作簿複製到目標工作簿來實現分割。

應用案例

假設你現在作爲你公司的首席銷售官,準備了一個Excel報表,其中按區域分別在不同的工作表上包含了銷售分析信息。你想要將這份報告分享給區域銷售經理們。但是,你希望將各個工作表分離成獨立的Excel文件,以隔離不同區域的分析細節,如下圖所示:

讓我們看看如何通過使用GcExcel通過3個簡單的步驟爲每個工作表生成獨立的Excel文件。

我們需要在遵循GcExcel的產品文檔中描述的規則的情況下於IDEA中使用GcExcel。

步驟1- 初始化工作簿

第一步是加載你想要拆分工作表的源工作簿。使用GcExcel,你可以通過IWorkbook接口的Open方法加載Excel文件,如下所示:

Workbook workbook = new Workbook();
workbook.open("input.xlsx");

步驟2 - 添加拆分Excel工作表的邏輯

完成第一步後,緊接着是添加拆分源工作簿中工作表的邏輯,包括:

  • 創建一個循環,遍歷源工作簿中的每個工作表,並按需進行拆分
  • 初始化一個臨時工作簿
  • 使用IWorksheets接口的Copy方法將當前工作表從源工作簿複製到臨時工作簿的末尾
  • 刪除臨時工作簿中的默認工作表
//創建一個循環
for (IWorksheet worksheet : workbook.getWorksheets()) {
    //初始化一個臨時工作簿,粘貼工作表,刪除臨時工作表
    Workbook tempWorkbook = new Workbook();
    worksheet.copy(tempWorkbook);
    tempWorkbook.getWorksheets().get("Sheet1").delete();
}

步驟3 - 保存拆分的Excel工作表

最後,使用IWorkbook接口的Save方法將拆分的工作表保存爲獨立的Excel或其他格式的文件,如下所示:

tempWorkbook.save(worksheet.getName()+".xlsx",SaveFileFormat.Xlsx);// Excel文件
tempWorkbook.save(worksheet.getName()+".pdf",SaveFileFormat.Pdf);// PDF文件

完整的代碼片段如下所述:

Workbook workbook = new Workbook();
workbook.open("test.xlsx");
for (IWorksheet worksheet : workbook.getWorksheets()) {
    Workbook tempWorkbook = new Workbook();
    worksheet.copy(tempWorkbook);
    tempWorkbook.getWorksheets().get("Sheet1").delete();
    tempWorkbook.save(worksheet.getName()+".xlsx",SaveFileFormat.Xlsx);
}

除此之外,GcExcel還提供了一些來自IWorksheets接口的其他方法,比如CopyAfter和CopyBefore,以滿足特定Excel需求的工作表拆分。此外,它還提供了Move、MoveAfter和MoveBefore方法,通過將工作表從源Excel文件移動到目標Excel文件來拆分工作表。

總結

Excel文件解決方案工具(GcExcel)是一個強大的工具,設計用於使用Java簡化Excel文檔的創建、讀取和編輯。它提供了一種簡單高效的方式來以編程方式處理Excel文檔。有了現成的API,你可以僅用幾行代碼就完成所需的Excel操作,如拆分工作表一樣。編程方式處理Excel文檔可以節省寶貴的時間和確保數據的精確性。如果您想了解更多的信息,歡迎點擊這裏查看。

擴展鏈接:

輕鬆構建低代碼工作流程:簡化繁瑣任務的利器

數據驅動創新:以Java編程方式定製數據透視表

Java批量操作Excel文件實踐

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章