Java實現(xiàn)批量合并Excel工作表
前言
在Excel中設(shè)計表單時,我們經(jīng)常需要對收集的信息進行統(tǒng)計分析。例如,學(xué)校給老師統(tǒng)計課時,醫(yī)院給醫(yī)護人員統(tǒng)計班次等。傳統(tǒng)的手工方式需要逐個對比數(shù)據(jù),然后將計算結(jié)果手動填寫到一個新的Excel文件中。但是這種方式不僅費時費力,而且很難確保數(shù)據(jù)結(jié)果的準確性。為了解決這個問題,小編今天要為大家介紹如何使用Java快速實現(xiàn)批量Excel工作表的合并。
使用Java實現(xiàn)工作表的快速合并
首先,給大家介紹一下兩種復(fù)制工作表的可能情況:
1.把多個文件的工作表復(fù)制到同一個文件中。
例如有10個Excel文件,每個文件中有一個工作表,最終結(jié)果是生成一個新文件,里面有10個工作表。
3.把多個文件的工作表內(nèi)容,截取一部分需要的,復(fù)制到同一個工作表中。
例如有10個Excel文件,每個文件中有一個工作表,只需要該工作表中A1:D24范圍內(nèi)的數(shù)據(jù),最終復(fù)制到新文件中的一個工作表中。
下面小編依次為大家介紹兩種情況的實現(xiàn)方法(以下圖的example.xlsx文件為例子)。

1.把多個文件的工作表復(fù)制到同一個文件中
首先分別創(chuàng)建兩個workbook,然后使用workbook打開example.xlsx,獲取 A1:D24的區(qū)域,并且分別復(fù)制到對應(yīng)Excel文件中 A1:D24 和 F1:G24 的區(qū)域。
//創(chuàng)建workbook
Workbook wb = new Workbook();
//使用workbook打開example.xlsx
wb.open("resources/example.xlsx");
Workbook newWb = new Workbook();
//獲取 A1:D24的區(qū)域,并且分別復(fù)制到對應(yīng)Excel文件中 A1:D24 和 F1:G24 的區(qū)域。
wb.getActiveSheet().getRange("A1:D24").copy(newWb.getActiveSheet().getRange("A1:D24"));
wb.getActiveSheet().getRange("A1:D24").copy(newWb.getActiveSheet().getRange("F1:G24"));
newWb.save("output/mergedSheet.xlsx");
結(jié)果如下:

2.把多個文件的工作表內(nèi)容,截取一部分需要的,復(fù)制到同一個工作表中
依然是創(chuàng)建兩個workbook,使用workbook打開example.xlsx,模擬兩次復(fù)制到newWb中。
這里使用的是copyBefore,意思是復(fù)制后,位置在對應(yīng)目標(biāo)工作表的前面。
//創(chuàng)建workbook
Workbook wb = new Workbook();
wb.open("resources/example.xlsx");
Workbook newWb = new Workbook();
//copyBefore:復(fù)制后,位置在對應(yīng)目標(biāo)工作表的前面。
wb.getActiveSheet().copyBefore(newWb.getWorksheets().get(0));
wb.getActiveSheet().copyBefore(newWb.getWorksheets().get(0));
newWb.save("output/copySheet.xlsx");
結(jié)果如下:
可以看到,在Sheet1前面,添加了兩個example工作表。

以上就是Java實現(xiàn)批量合并Excel工作表的詳細內(nèi)容,更多關(guān)于Java合并Excel工作表的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
ServletWebServerApplicationContext創(chuàng)建Web容器Tomcat示例
這篇文章主要為大家介紹了ServletWebServerApplicationContext創(chuàng)建Web容器Tomcat示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
java 中動態(tài)代理(JDK,cglib)實例代碼
這篇文章主要介紹了java 中動態(tài)代理,這里介紹了JDK 動態(tài)代理與 cglib 動態(tài)代理的相關(guān)資料2017-04-04
Java之Spring AOP 實現(xiàn)用戶權(quán)限驗證
本篇文章主要介紹了Java之Spring AOP 實現(xiàn)用戶權(quán)限驗證,用戶登錄、權(quán)限管理這些是必不可少的業(yè)務(wù)邏輯,具有一定的參考價值,有興趣的可以了解一下。2017-02-02
如何解決redis的NOAUTH Authentication required異常
這篇文章主要介紹了Jedis異常解決:NOAUTH Authentication required,,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值2019-07-07
Java 中的 BufferedReader 介紹_動力節(jié)點Java學(xué)院整理
BufferedReader 是緩沖字符輸入流。它繼承于Reader。接下來通過本文給大家介紹BufferedReader的相關(guān)知識,需要的朋友參考下吧2017-05-05
Spring實戰(zhàn)之類級別緩存實現(xiàn)與使用方法
這篇文章主要介紹了Spring實戰(zhàn)之類級別緩存實現(xiàn)與使用方法,結(jié)合實例形式分析了Spring類級別緩存配置、屬性、領(lǐng)域模型等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01
java 將數(shù)據(jù)加載到內(nèi)存中的操作
這篇文章主要介紹了java 將數(shù)據(jù)加載到內(nèi)存中的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09

