Java實(shí)現(xiàn)批量合并Excel工作表
前言
在Excel中設(shè)計(jì)表單時(shí),我們經(jīng)常需要對(duì)收集的信息進(jìn)行統(tǒng)計(jì)分析。例如,學(xué)校給老師統(tǒng)計(jì)課時(shí),醫(yī)院給醫(yī)護(hù)人員統(tǒng)計(jì)班次等。傳統(tǒng)的手工方式需要逐個(gè)對(duì)比數(shù)據(jù),然后將計(jì)算結(jié)果手動(dòng)填寫到一個(gè)新的Excel文件中。但是這種方式不僅費(fèi)時(shí)費(fèi)力,而且很難確保數(shù)據(jù)結(jié)果的準(zhǔn)確性。為了解決這個(gè)問(wèn)題,小編今天要為大家介紹如何使用Java快速實(shí)現(xiàn)批量Excel工作表的合并。
使用Java實(shí)現(xiàn)工作表的快速合并
首先,給大家介紹一下兩種復(fù)制工作表的可能情況:
1.把多個(gè)文件的工作表復(fù)制到同一個(gè)文件中。
例如有10個(gè)Excel文件,每個(gè)文件中有一個(gè)工作表,最終結(jié)果是生成一個(gè)新文件,里面有10個(gè)工作表。
3.把多個(gè)文件的工作表內(nèi)容,截取一部分需要的,復(fù)制到同一個(gè)工作表中。
例如有10個(gè)Excel文件,每個(gè)文件中有一個(gè)工作表,只需要該工作表中A1:D24范圍內(nèi)的數(shù)據(jù),最終復(fù)制到新文件中的一個(gè)工作表中。
下面小編依次為大家介紹兩種情況的實(shí)現(xiàn)方法(以下圖的example.xlsx文件為例子)。
1.把多個(gè)文件的工作表復(fù)制到同一個(gè)文件中
首先分別創(chuàng)建兩個(gè)workbook,然后使用workbook打開(kāi)example.xlsx,獲取 A1:D24的區(qū)域,并且分別復(fù)制到對(duì)應(yīng)Excel文件中 A1:D24 和 F1:G24 的區(qū)域。
//創(chuàng)建workbook Workbook wb = new Workbook(); //使用workbook打開(kāi)example.xlsx wb.open("resources/example.xlsx"); Workbook newWb = new Workbook(); //獲取 A1:D24的區(qū)域,并且分別復(fù)制到對(duì)應(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.把多個(gè)文件的工作表內(nèi)容,截取一部分需要的,復(fù)制到同一個(gè)工作表中
依然是創(chuàng)建兩個(gè)workbook,使用workbook打開(kāi)example.xlsx,模擬兩次復(fù)制到newWb中。
這里使用的是copyBefore,意思是復(fù)制后,位置在對(duì)應(yīng)目標(biāo)工作表的前面。
//創(chuàng)建workbook Workbook wb = new Workbook(); wb.open("resources/example.xlsx"); Workbook newWb = new Workbook(); //copyBefore:復(fù)制后,位置在對(duì)應(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前面,添加了兩個(gè)example工作表。
以上就是Java實(shí)現(xiàn)批量合并Excel工作表的詳細(xì)內(nèi)容,更多關(guān)于Java合并Excel工作表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- java實(shí)現(xiàn)合并單元格的同時(shí)并導(dǎo)出excel示例
- java實(shí)現(xiàn)對(duì)excel文件的處理合并單元格的操作
- Java導(dǎo)出Excel統(tǒng)計(jì)報(bào)表合并單元格的方法詳解
- Java利用EasyExcel實(shí)現(xiàn)合并單元格
- Java實(shí)現(xiàn)導(dǎo)出合并Excel單元格
- java實(shí)現(xiàn)excel導(dǎo)出合并單元格的步驟詳解
- JAVA中excel導(dǎo)出一對(duì)多合并具體實(shí)現(xiàn)
- Java?EasyExcel導(dǎo)出合并單元格的示例詳解
相關(guān)文章
ServletWebServerApplicationContext創(chuàng)建Web容器Tomcat示例
這篇文章主要為大家介紹了ServletWebServerApplicationContext創(chuàng)建Web容器Tomcat示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Springboot mybatis常見(jiàn)配置問(wèn)題解決
這篇文章主要介紹了Springboot mybatis常見(jiàn)配置問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11java 中動(dòng)態(tài)代理(JDK,cglib)實(shí)例代碼
這篇文章主要介紹了java 中動(dòng)態(tài)代理,這里介紹了JDK 動(dòng)態(tài)代理與 cglib 動(dòng)態(tài)代理的相關(guān)資料2017-04-04Java之Spring AOP 實(shí)現(xiàn)用戶權(quán)限驗(yàn)證
本篇文章主要介紹了Java之Spring AOP 實(shí)現(xiàn)用戶權(quán)限驗(yàn)證,用戶登錄、權(quán)限管理這些是必不可少的業(yè)務(wù)邏輯,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-02-02如何解決redis的NOAUTH Authentication required異常
這篇文章主要介紹了Jedis異常解決:NOAUTH Authentication required,,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值2019-07-07Java 中的 BufferedReader 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
BufferedReader 是緩沖字符輸入流。它繼承于Reader。接下來(lái)通過(guò)本文給大家介紹BufferedReader的相關(guān)知識(shí),需要的朋友參考下吧2017-05-05Java clone方法詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了 Java clone方法詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03Spring實(shí)戰(zhàn)之類級(jí)別緩存實(shí)現(xiàn)與使用方法
這篇文章主要介紹了Spring實(shí)戰(zhàn)之類級(jí)別緩存實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式分析了Spring類級(jí)別緩存配置、屬性、領(lǐng)域模型等相關(guān)操作技巧,需要的朋友可以參考下2020-01-01java 將數(shù)據(jù)加載到內(nèi)存中的操作
這篇文章主要介紹了java 將數(shù)據(jù)加載到內(nèi)存中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09