From e87838d13ade40b4d17472c23570703e8a952b83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 25 Apr 2023 07:47:10 +0800 Subject: [PATCH] 'commit' --- src/main/java/Tools/SplitSheet.java | 41 +++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/main/java/Tools/SplitSheet.java diff --git a/src/main/java/Tools/SplitSheet.java b/src/main/java/Tools/SplitSheet.java new file mode 100644 index 0000000..f857ae3 --- /dev/null +++ b/src/main/java/Tools/SplitSheet.java @@ -0,0 +1,41 @@ +package UnitTest; + +import cn.hutool.core.io.FileUtil; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.nio.file.Files; +import java.util.UUID; + +public class SplitSheet { + public static void main(String[] args) throws Exception { + String filePath = "D:\\单位项目文档\\湘潭项目相关文档\\新需求\\综表_湖南省湘潭市教育局_教育事业综合统计调查_2022_20230116112015608075.xlsx"; + // 第一步,创建一个webbook,对应一个Excel文件 + XSSFWorkbook workbook = new XSSFWorkbook(Files.newInputStream(new File(filePath).toPath())); + int sheetCnt = workbook.getNumberOfSheets(); + workbook.close(); + + for (int i = 0; i < sheetCnt; i++) {// 获取每个Sheet表 + String tmp = System.getProperty("java.io.tmpdir") + UUID.randomUUID() + ".xlsx"; + FileUtil.copyFile(filePath,tmp); + + File file = new File(tmp); + XSSFWorkbook wb2 = new XSSFWorkbook(new FileInputStream(file)); + for (int j = sheetCnt - 1; j >= 0; j--) { + if (i == j) continue; + wb2.removeSheetAt(j); + } + String sheetName = workbook.getSheetName(i); + String saveFileName = "D:\\单位项目文档\\湘潭项目相关文档\\新需求\\分拆结果\\" + sheetName + ".xlsx"; + FileOutputStream fout = new FileOutputStream(saveFileName); + wb2.write(fout); + wb2.close(); + fout.close(); + file.delete();//删除文件 + System.out.println("完成" + (i + 1) + "个,共" + sheetCnt + "个!"); + } + System.out.println("恭喜,所有操作成功完成!"); + } +}