Java 将Excel工作簿按工作表拆分为多个文档
本文介绍在Java代码环境中如何将Excel工作簿按工作表拆分为多个Excel文档,即:把Excel工作簿中的每一个工作表单独保存为一个Excel工作簿文件。
思路及方法:通过将源文档中的每个工作表通过复制的方式,保存到新的工作簿。
程序环境
- IDEA
- JDK1.8.0
- Spire.Xls.jar(免费版)
测试文档如图,包含三个工作表:

代码示例
import com.spire.xls.*;
public class SplitFile {
public static void main(String[] args) {
//加载Excel文档
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//遍历所有工作表
for (int i = 0; i < wb.getWorksheets().getCount(); i++) {
//创建一个新的Excel工作簿,并删除默认生成的空白工作表
Workbook newWb = new Workbook();
newWb.getWorksheets().clear();
//将源文档中的工作表复制到新的Workbbok
newWb.getWorksheets().addCopy(wb.getWorksheets().get(i));
//获取源文档中的工作表名
String sheetName = wb.getWorksheets().get(i).getName();
//保存新的Excel工作簿
newWb.saveToFile( sheetName + ".xlsx", FileFormat.Version2013);
}
}
}
文档拆分结果:

注:编辑代码调用接口及方法操作Excel文档时,注意先导入Spire.Xls.jar到Java程序。
1. 手动下载导入jar到Java程序;
2. 通过Maven仓库下载导入。
Java 将Excel工作簿按工作表拆分为多个文档的更多相关文章
- PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...
- PoiDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用Poi实现android中根据模板文件生成Word文档的功能.这里的模板文件是doc文件.如果模板文件是docx文件的话,请阅读 ...
- Android根据word模板文档将表单数据生成word文档的方案整理
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 尝试的方案包括以下几种: freemarker 只能在java项目上运行,无法在Android项目上运行: 参考资料:<Fre ...
- [办公自动化]excel工作簿内的表无法删除,单击右键无删除键
今天同事问,我自己的工作簿,没有设置保护,但是就是无法删除其中的工作表. 后来发现,她的excel工作簿打开的文件名后面显示[共享]. 原因找到了. 取消共享就可以了.
- c# 创建Excel com加载项Ribbon动态加载工作簿和工作表
使用 VSTO 创建外接程序,Gallery控件动态加载工作簿名称 代码如下: 加载工作簿名称: private void Gallery1_ItemsLoading(object sender, R ...
- Excel 工作簿、工作表与单元格
工作簿 工作簿是指在 Excel 中用来存储并处理数据的文件,其扩展名是.xlsx.工作簿是由工作表组成的,每一个工作簿都可以包含一个或多个工作表,默认为 3 个工作表.Excel 2007 之前的版 ...
- excel破解工作簿与工作表保护
1.工作簿保护 1.1.使用压缩文件打开文件
- 用openpyxl创建工作簿和工作表
import osimport openpyxl #设置默认路径os.chdir(r'D:/openpyxl/') #创建工作簿变量 wb = openpyxl.Workbook() #创建工作表变量 ...
- FreemarkerJavaDemo【Android将表单数据生成Word文档的方案之一(基于freemarker2.3.28,只能java生成)】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个方案只能在java中运行,无法在Android项目中运行.所以此方案是:APP将表单数据发送给后台,后台通过freemarker ...
- java 在MySQL中存储文件,读取文件(包括图片,word文档,excel表格,ppt,zip文件等)
转自:https://blog.csdn.net/u014475796/article/details/49893261 在设计到数据库的开发中,难免要将图片或文档文件(如word)插入到数据库中的情 ...
随机推荐
- JVM 学习
目录 1. 类加载器及类加载过程 1.1 基本流程 1.2 类加载器子系统作用 1.3 类加载器角色 1.4 加载过程 (1) 加载 loading (2) 链接 linking 验证 verify ...
- k8s集群证书过期,重新生成证书
Kubernetes集群证书过期后,使用kubeadm重新颁发证书 默认情况下部署kubernetes集群的证书一年内便过期,如果不及时升级证书导致证书过期,Kubernetes控制节点便会不可用,所 ...
- Codeforces Round #702 (Div. 3) 题解
写在前边 链接:Codeforces Round #702 (Div. 3) 比较简单,但是总是感觉脑子有点转不过弯来. A. Dense Array 链接:A题链接 题目大意: 在数组中插入若干个数 ...
- EventBus 简明教程
简介 EventBus 是一个用于 Android 和 Java 编程的 事件发布/订阅框架.使用 EventBus 进行事件传递,事件的发布和订阅就被充分解耦合,这使得编程人员从传统而原始的事件传递 ...
- pygame播放视频并实现音视频同步
一.前言 在我接触pygame时最新的pygame已经不支持movie模块,这就导致在pygame播放视频变成一个问题,网上搜了下解决方案有两个: 一是使用opencv播放视频,再结合pygame.m ...
- python中pip下载慢或报错的解决方法
一:问题 python的pip在安装包时,有时会报错超时,排除包名写错的原因,一般这种问题是因为网络下载过慢,导致超时 二:解决方案 我们可以设置pip镜像源下载,能够提升pip下载速度,解决报错问题 ...
- JAVA培训
类 类名 对象名=new 类名(); 面向对象的三种特性 * 封装 原理:利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体.数据被保护在抽象数据类型的内部,尽可能地隐藏 ...
- 2021年前端面试题——JS
目录: DOM事件流有那些阶段? 解释事件冒泡以及如何阻止它? 事件委派/事件委托是什么? 如何理解 JS 中的this关键字? 更改this指向的方法有那些? apply.call.bind 区别? ...
- Access denied for user ‘root‘@‘localhost‘ (using password:YES)解决方法
修改jdbc.properties文件的密码
- 2021牛客多校第一场 I题(DP)
题意 给定一个长度为 \(n(n<=5000)\) 的排列,两个人轮流从这个序列中选择一个数,要求当前回合此人选择的数大于任意一个已经被选择的数,并且该数在数组中的位置 \(i\) 与此人上一次 ...