package com.cmii.ag.zhyz.demo.payload.village.util;import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.*;/*** 合并excel的sheet工具类*/
public class MergeExcelUtil {/*** formexcel中有多个sheet需要合并时调用此方法遍历合并* @param formExcelPath 需要合并的sheet的excel的地址* @param mainExcelPath 合并到的主excel*/public static void manySheetMergeExcel(String formExcelPath,String mainExcelPath){try(FileInputStream mainFile = new FileInputStream(new File(mainExcelPath));FileInputStream excelFile = new FileInputStream(new File(formExcelPath));FileOutputStream outputStream = new FileOutputStream(mainExcelPath);) {XSSFWorkbook workbook = new XSSFWorkbook(excelFile);XSSFWorkbook mainWork = new XSSFWorkbook(mainFile);int numberOfSheets = workbook.getNumberOfSheets();for (int i = 0 ; i< numberOfSheets ; i++){XSSFSheet sheetAt = workbook.getSheetAt(i);mainWork.createSheet(sheetAt.getSheetName());XSSFSheet mainSheet = mainWork.getSheet(sheetAt.getSheetName());System.out.println("当前是第"+i+"张sheet");CopySheetUtil.copySheet(mainWork,sheetAt,mainSheet);}mainWork.write(outputStream);} catch (Exception e) {e.printStackTrace();}}/*** 文件夹下多个excel需要合并到一个excel时调用此方法* excel中只需要第一个sheet复制* @param filePath 文件夹地址* @param mainExcelPath 目标excel地址*/public static void oneSheetMergeExcel(String filePath,String mainExcelPath){try(FileInputStream mainFile = new FileInputStream(new File(mainExcelPath));FileOutputStream outputStream = new FileOutputStream(mainExcelPath);) {XSSFWorkbook mainWork = new XSSFWorkbook(mainFile);recursiveFiles(filePath,mainWork);mainWork.write(outputStream);}catch(Exception e) {e.printStackTrace();}}/*** 循环读取文件夹里的excel文件合并到目标excel* @param path 需要循环的文件夹地址* @param mainWork 需要复制进去的目标excel的工作簿*/public static void recursiveFiles(String path,XSSFWorkbook mainWork) throws IOException {// 创建 File对象File file = new File(path);// 取 文件/文件夹File files[] = file.listFiles();// 对象为空 直接返回if(files == null){return;}// 目录下文件if(files.length == 0){System.out.println(path + "该文件夹下没有文件");}// 存在文件 遍历 判断for (File f : files) {// 判断是否为 文件夹if(f.isDirectory()){System.out.print("文件夹: ");System.out.println(f.getAbsolutePath());// 为 文件夹继续遍历recursiveFiles(f.getAbsolutePath(),mainWork);// 判断是否为 文件} else if(f.isFile()){FileInputStream excelFile = new FileInputStream(f);XSSFWorkbook workbook = new XSSFWorkbook(excelFile);XSSFSheet sheetAt = workbook.getSheetAt(0);String name = f.getName();int i = name.indexOf(".");name = name.substring(0,i);System.out.println("sheet名字:"+name);mainWork.createSheet(name);XSSFSheet mainSheet = mainWork.getSheet(name);CopySheetUtil.copySheet(mainWork,sheetAt,mainSheet);} else {System.out.print("未知错误文件");}}}
}

使用Java合并excel的sheet的操作相关推荐

  1. java 复制excel_PoiUtil.java 用于excel间sheet复制

    前言:apache提供的poi功能确实比较强大,但是不明白为什么没有相应的方法实现不同excel文件中sheet的复制功能.这也是本文整理PoiUtil工具类的初衷.网上有相关的解决方案,在参考了网上 ...

  2. java合并excel文件_Java 合并Excel文档

    在日常使用Excel软件办公时,通常会产生很多文档.当我们需对其中的数据进行整理和统计时,对文档进行合并处理将能够大大提高操作效率.一般文档合并可分为两种情况:一是将同一个Excel文档内多张工作表的 ...

  3. java对excel文件的读写操作

    通过 Jakarta的POI项目提供了一组操纵Windows文档的Java API 来完成对excel文件操作 该API有如下几个类提供了操作Excel文件的方便的途径: HSSFWorkbook = ...

  4. java解析excel文件,神操作!

    01 如何理解高并发? 高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验. 我们常见的高并发场景有:淘宝的双11.春运时的抢票 ...

  5. java读取sheet2_java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本)

    java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本) 在http://download.csdn.net/detail/u010792467/8072015下载所需 ...

  6. java合并单元格的快捷键_Java使用POI操作Excel合并单元格

    合并单元格的方法: 指定 4 个参数,起始行,结束行,起始列,结束列.然后这个区域将被合并. CellRangeAddress region = new CellRangeAddress(startR ...

  7. Java Excel 复制单元格 poi Excel 复制单元格 Java Excel 复制行 Java Excel 复制 sheet 页 poi excel copy

    Java Excel 复制单元格 poi Excel 复制单元格 Java Excel 复制行 Java Excel 复制 sheet 页 一.前言 1.本文记录 poi excel 实现 单元格ce ...

  8. Java对Excel表格的操作

    Java对Excel表格的操作 目前软件开发多采用B/S架构.正B/S架构可以给软件的开发部署带来很大的便利,但是与此同时这种架构也带来了一些问题,例如Web报表的处理等,在B/S架构下,客户端的开发 ...

  9. java中excel下载(多sheet)

    工具类: package com.gaoenergy.mntc.common.util; import java.io.File; import java.io.FileOutputStream; i ...

  10. Java操作Excel之POI:java读写excel文件以及打印设置

    Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0 ...

最新文章

  1. python多项分时求和_python实现连续变量最优分箱详解--CART算法
  2. 热潮下的冷思考,人工智能即将改变的三大领域
  3. FTP 500 OOPS
  4. Leaflet中添加标记、折线、圆圈、多边形、弹窗显示点击处坐标
  5. 关于真正免费的嵌入式GUI
  6. jsp中为什么有时out.write不能写,为什么?
  7. Java基础——从数组到集合之间关键字的区别!!!!
  8. 案例:神经网络建模 + 可视化分析 = 提效增质的利器!
  9. r语言html爬虫,用R语言三行代码写爬虫
  10. 惯性导航学习笔记——惯性技术基础知识
  11. springboot:运行(部署)时出现WebServerException: Unable to create tempDir.
  12. OpenXML指定位置插入图片
  13. Elastic 7.13.0 版重磅发布:在 Elastic 上搜索和存储更多数据
  14. FaceBoxes: A CPU Real-time Face Detector with High Accuracy
  15. cluster(1)
  16. High Version Count Issues
  17. 观点| 如何避免GitHub那样断网43秒瘫痪 24 个小时?
  18. 本科毕业论文问卷调查怎么写
  19. 基于STM32和阿里云的环境检测系统设计
  20. 谷歌Pixel 4神奇在哪儿? AI黑科技带来四大改变!

热门文章

  1. 1076 Wifi密码
  2. 机器学习笔记 - SimSwap 指南:高保真换脸的高效框架
  3. VAM语料库--学习笔记
  4. 在SVG中旋转图形,需要设置各个图形的旋转中心点
  5. Mac M2芯片Arm64安卓模拟器7.0安装xposed
  6. linux下view如何修改字符串,Linux下view命令的使用
  7. Iterative Reweighted Least Squares(IRLS)
  8. N-gram模型详解
  9. 使用Raygun Pulse进行真实用户监控
  10. 为什么我的微信小程序开发工具调试窗口一片空白?