Java實(shí)現(xiàn)批量合并Excel工作表
前言
在Excel中設(shè)計(jì)表單時(shí),我們經(jīng)常需要對收集的信息進(jìn)行統(tǒng)計(jì)分析。例如,學(xué)校給老師統(tǒng)計(jì)課時(shí),醫(yī)院給醫(yī)護(hù)人員統(tǒng)計(jì)班次等。傳統(tǒng)的手工方式需要逐個(gè)對比數(shù)據(jù),然后將計(jì)算結(jié)果手動(dòng)填寫到一個(gè)新的Excel文件中。但是這種方式不僅費(fèi)時(shí)費(fèi)力,而且很難確保數(shù)據(jù)結(jié)果的準(zhǔn)確性。為了解決這個(gè)問題,小編今天要為大家介紹如何使用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打開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.把多個(gè)文件的工作表內(nèi)容,截取一部分需要的,復(fù)制到同一個(gè)工作表中
依然是創(chuàng)建兩個(gè)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前面,添加了兩個(gè)example工作表。

以上就是Java實(shí)現(xiàn)批量合并Excel工作表的詳細(xì)內(nèi)容,更多關(guān)于Java合并Excel工作表的資料請關(guān)注腳本之家其它相關(guān)文章!
- java實(shí)現(xiàn)合并單元格的同時(shí)并導(dǎo)出excel示例
- java實(shí)現(xiàn)對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)出一對多合并具體實(shí)現(xiàn)
- Java?EasyExcel導(dǎo)出合并單元格的示例詳解
相關(guān)文章
java多線程編程必備volatile與synchronized深入理解
這篇文章主要介紹了java多線程編程必備volatile與synchronized的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
SpringBoot自定義動(dòng)態(tài)數(shù)據(jù)源的流程步驟
動(dòng)態(tài)數(shù)據(jù)源,本質(zhì)上是把多個(gè)數(shù)據(jù)源存儲在一個(gè)?Map?中,當(dāng)需要使用某一個(gè)數(shù)據(jù)源時(shí),使用?key?獲取指定數(shù)據(jù)源進(jìn)行處理,本文將給大家介紹一下SpringBoot自定義動(dòng)態(tài)數(shù)據(jù)源的流程步驟,需要的朋友可以參考下2024-06-06
關(guān)于微服務(wù)使用Dubbo設(shè)置的端口和server.port的區(qū)別
這篇文章主要介紹了關(guān)于微服務(wù)使用Dubbo設(shè)置的端口和server.port的區(qū)別,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Spring Boot不同版本Redis設(shè)置JedisConnectionFactory詳解
本文章向大家介紹Spring Boot不同版本Redis設(shè)置JedisConnectionFactory,主要內(nèi)容包括1.X 版本、2.X 版本、2.、基本概念、基礎(chǔ)應(yīng)用、原理機(jī)制和需要注意的事項(xiàng)等,并結(jié)合實(shí)例形式分析了其使用技巧,希望通過本文能幫助到大家理解應(yīng)用這部分內(nèi)容2023-09-09
SpringBoot @RestController注解用法及說明
@RestController是Spring Boot中用于構(gòu)建RESTful Web服務(wù)的核心注解,它簡化了RESTful服務(wù)的開發(fā),該注解結(jié)合了@Controller和@ResponseBody的功能,使得控制器類中的所有請求處理方法的返回值會自動(dòng)序列化為JSON/XML格式并寫入HTTP響應(yīng)體中2025-10-10

