在日常使用Excel軟件辦公時(shí),通常會(huì)產(chǎn)生很多文檔桶错。當(dāng)我們需對(duì)其中的數(shù)據(jù)進(jìn)行整理和統(tǒng)計(jì)時(shí)航唆,對(duì)文檔進(jìn)行合并處理將能夠大大提高操作效率。一般文檔合并可分為兩種情況:一是將同一個(gè)Excel文檔內(nèi)多張工作表的數(shù)據(jù)合并到一張工作表院刁;二是將多個(gè)Excel文檔合并到一個(gè)Excel文檔糯钙。本文就將通過使用Java程序來演示以上兩種文檔合并的情況。? ????
使用工具:Free Spire.XLS for Java(免費(fèi)版)
Jar文件獲取及導(dǎo)入:
方法1:通過官網(wǎng)下載獲取jar包退腥。解壓后將lib文件夾下的Spire.Xls.jar文件導(dǎo)入Java程序任岸。(如下圖)
方法2:通過maven倉庫安裝導(dǎo)入。具體安裝教程參見此網(wǎng)頁狡刘。
【示例1】合并Excel工作表
原文檔截圖:
代碼示例:
import com.spire.xls.*;
public class MergeWorksheet2 {
public static void main(String[] args) {
//創(chuàng)建workbook實(shí)例
??????? Workbook workbook = new Workbook();
//加載Excel文檔
??????? workbook.loadFromFile("C:\\Users\\Test1\\Desktop\\Sample.xlsx");
//獲取第一個(gè)工作表
??????? Worksheet sheet1 = workbook.getWorksheets().get(0);
//獲取第二個(gè)工作表
??????? Worksheet sheet2 = workbook.getWorksheets().get(1);
//將工作表2中的數(shù)據(jù)連同格式復(fù)制到工作表1中
??????? sheet2.getAllocatedRange().copy(sheet1.getRange().get(sheet1.getLastRow() +1, 1));
//保存文檔
??????? workbook.saveToFile("output/MergeWorksheets.xlsx", ExcelVersion.Version2013);
??? }
}
合并效果:
【示例2】合并Excel文檔
原文檔截圖:
代碼示例:
import com.spire.xls.*;
public class MergeFiles {
public?static void main(String[] args) {
//將待合并Excel文檔的名稱保存至字符串?dāng)?shù)組
??????? String[] inputFiles = new String[]{"C:\\Users\\Test1\\Desktop\\File1.xlsx","C:\\Users\\Test1\\Desktop\\File2.xlsx"};
//創(chuàng)建一個(gè)新的Excel文檔
??????? Workbook newBook = new Workbook();
//清除默認(rèn)的3張工作表
??????? newBook.getWorksheets().clear();
//創(chuàng)建另一個(gè)Excel文檔
??????? Workbook tempBook = new Workbook();
//遍歷數(shù)組享潜,依次加載每個(gè)Excel文檔并將文檔中的所有工作表復(fù)制到新建的Excel文檔中
??????? for (String file : inputFiles)
??????? {
??????????? tempBook.loadFromFile(file);
for (Worksheet sheet :(Iterable)tempBook.getWorksheets())
??????????? {
???????????????newBook.getWorksheets().addCopy(sheet, WorksheetCopyType.
CopyAll);
??????????? }
??????? }
//保存
??????? newBook.saveToFile("output/MergeFiles.xlsx", ExcelVersion.Version2013);
??? }
}
合并效果:
(本文完)