java poi 通过excel模板导出并且生成多个sheet

Java 导出EXCEL(支持多个sheet页) 【代码】Java 导出EXCEL(支持多个sheet页) 阅读详情
根据EXCEL模板导出EXCEL,已经在上一遍博客里写到了《 关于JAVA 用POI 通过EXCEL模板 导出Excel 》;
下面写一下,关于通过excel模板生成之后,生成多个sheet;
代码如下: (只写关键代码)
FileOutputStream fileOut = new FileOutputStream("D:\\excel.xls");
HSSFWorkbook workbook = null;
InputStream fis = new FileInputStream(filePath);
workbook = new HSSFWorkbook(fis);
for (int i = 0; i < 3; i++) {
HSSFSheet newsheet = null;
HSSFSheet fromsheet = workbook.getSheet("sheet1");
newsheet = workbook
.createSheet("tt_" + (String.valueOf(i + 1)));
copyRows(workbook, fromsheet, newsheet, fromsheet
.getFirstRowNum(), fromsheet.getLastRowNum());
}

@SuppressWarnings("deprecation")
private static void copyRows(HSSFWorkbook workbook, HSSFSheet fromsheet, HSSFSheet newsheet, int firstrow, int lastrow)
{
if ((firstrow == -1) || (lastrow == -1) || lastrow < firstrow)
{
return;
}
// 拷贝合并的单元格
Region region = null;
for (int i = 0; i < fromsheet.getNumMergedRegions(); i++)
{
region = fromsheet.getMergedRegionAt(i);
if ((region.getRowFrom() >= firstrow) && (region.getRowTo() <= lastrow))
{
newsheet.addMergedRegion(region);
}
}
HSSFRow fromRow = null;
HSSFRow newRow = null;
HSSFCell newCell = null;
HSSFCell fromCell = null;
// 设置列宽
for (int i = firstrow; i <= lastrow; i++)
{
fromRow = fromsheet.getRow(i);
if (fromRow != null)
{
for (int j = fromRow.getLastCellNum(); j >= fromRow.getFirstCellNum(); j--)
{
int colnum = fromsheet.getColumnWidth((short) j);
if (colnum > 100)
{
newsheet.setColumnWidth((short) j, (short) colnum);
}
if (colnum == 0)
{
newsheet.setColumnHidden((short) j, true);
}
else
{
newsheet.setColumnHidden((short) j, false);
}
}
break;
}
}
// 拷贝行并填充数据
for (int i = 0; i <= lastrow; i++)
{
fromRow = fromsheet.getRow(i);
if (fromRow == null)
{
continue;
}
newRow = newsheet.createRow(i - firstrow);
newRow.setHeight(fromRow.getHeight());
for (int j = fromRow.getFirstCellNum(); j < fromRow.getPhysicalNumberOfCells (); j++)
{
fromCell = fromRow.getCell((short) j);
if (fromCell == null)
{
continue;
}
newCell = newRow.createCell((short) j);
newCell.setCellStyle(fromCell.getCellStyle());
int cType = fromCell.getCellType();
newCell.setCellType(cType);
switch (cType)
{
case HSSFCell.CELL_TYPE_STRING:
newCell.setCellValue(fromCell.getRichStringCellValue());
break;
case HSSFCell.CELL_TYPE_NUMERIC:
newCell.setCellValue(fromCell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_FORMULA:
newCell.setCellFormula(fromCell.getCellFormula());
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
newCell.setCellValue(fromCell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_ERROR:
newCell.setCellValue(fromCell.getErrorCellValue());
break;
default:
newCell.setCellValue(fromCell.getRichStringCellValue());
break;
}
}
}

}
POI创建多个sheet的Excel文件 前言 最近项目上有个需求,需要导出员工的考勤报表,需要两个模块,一个考勤的统计,一个考勤记录详情,导出的时候需要同时包含两部分内容。但平时做的都是只导出一个sheet,搜集一些资料经过自己的整合特此记录一下。 代码 废话不多说先上工具类代码。 import java.io.IOException; import java.util.List; import org.apache.p... 阅读详情

相关推荐

jxls Excel表格导出( 模板导出多个sheet)

1.使用jxls-core jar包来实现(jxls-core不支持POI4以上的版本) 1.1 maven <dependency> <groupId>net.sf.jxls</groupId> <artifactId>jxls-core</artifactId> <version>1.0.6</version> </dependency> //打包时对像xlsx文件过滤 <

sun_873347796的博客 3961

如何使用Java 实现excel模板导出---多sheet导出?

每个sheet页都需要写批注,通过批注中的expression对应的值来判断是哪个sheet页的数据,从而进行填充。dataMapping中的key值指的是列序号,value值指的是填充的字段名称,通过名称找对应的数据。

Do_LaLi的博客 2528

POI下JAVA导出基于模板的Excel

最近做了一个比较麻烦的功能,导出一个复杂格式的EXCEL,因为使用POI已经很长时间了,导出很方便,导入的话格式并不是很支持,所以想到了使用基于模板,JAVA导出的Excel 如何读取Excel模板然后把动态数据写入到模板以生成特定格式的Excel,同样的思路,先来考虑下会涉及到

lr5200的专栏 2万+

JAVA POI导出excel(二):多个sheet

JAVA POI导出Excel之多个sheet

Javaの甘乃迪的博客 1万+

poi实现列表导出多sheet模板excel文件

1.背景介绍 要求导出一个List<Map<String,Object>>,其中每个Map的内容以模板的形式导出为excel的一个sheet页;List的长度即sheet页的页数,总共保存为一个excel文件 2.整体思路 1)建立一个excel模板 2)后台获取泛型是Map<String,Object>的数据列表 3)循环遍历列表,为每个Map创建一...

LonelySnow的博客 5991

基于Easy-poi完成Excel模板导出,多图片,多sheet页

一、导入需要的依赖 1、` <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>4.2.0</version> </dependency> <dependency>

qq_39429363的博客 3376

JAVA导出Excel文件

JAVA生成Excel文件并导出 一:集成POI 1、Apache POI 2、easyexcel 二:Excel相关操作 1、基础Excel导出 2、压缩Zip导出 3、错误Excel导出 4、根据Html导出 5、根据模板导出 6、根据模板及列表导出 7、根据模板及列表扩充导出 8、根据模板导出,拆分多个sheet页 9、导入 三:Excel代码 1、工具类 2、测试Bean 3、测试Service 4、测试ServiceImpl 5、测试Controller

qq_38254635的博客 2万+

SpringBoot整合POI实现Excel文件的导出与导入

Apache POI 是一个基于 Java 的开源库,专为读写 Microsoft Office 格式文件(如 Excel、Word、PowerPoint、Visio 等)而设计,支持 Office 97-2016 版本的文件操作‌。其名称源于“Poor Obfuscation Implementation”(简洁版的模糊实现)的首字母缩写‌。Apache POI 功能全面,覆盖 Office 文件的全生命周期操作。‌社区活跃,文档丰富,适用于复杂场景(如:模板替换、动态生成报表)‌。

pan_junbiao的博客 1551

EasyPoi模板导出(多个sheet,多个表头)

公司有个需求要实现大屏页面统计数据的导出功能,要求支持多个sheet,一个sheet支持多个表格的模板导出,故先写了个demo,以供参考。(注:项目已引入的poi工具包为3.2.0版本)。预先设定的导出模板如下: 具体代码: controller /** * 大数据地图统计-总下载 * * @param res */ @PostMapping("/export/analyse") public void exportAnalyse(HttpSer

weixin_35783708的博客 5764

POI生成excel文件并下载,通用的(多sheet页,配置模板即可)

直接上代码啊。 1 参数实体 import lombok.Data; import javax.servlet.http.HttpServletResponse; import java.util.List; @Data public class DownParam { private String filename;//下载的文件名称 private HttpServle...

szzssz的博客 1294

Java使用POI实现Excel导入导出与模板处理实战

Apache POI 是 Java 平台上用于操作 Microsoft Office 文档的开源库,广泛应用于 Excel 文件的导入、导出和数据处理场景。其核心组件包括 HSSF(用于处理 .xls 格式)、XSSF(用于处理 .xlsx 格式)和 SXSSF(基于 XSSF 的内存优化模型),分别适用于不同版本的 Excel 文件。通过 Maven 或 Gradle 引入 POI 依赖后,开发者即可使用其 API 对 Excel 文件进行读写操作。

weixin_32687875的博客 1353

java excel多个sheet页_Java根据模板导出Excel报表并复制模板生成多个Sheet页的示例代码分享(图)...

本文主要介绍了Java根据模板导出Excel报表并复制模板生成多个Sheet页的方法,具有很好的参考价值。下面跟着小编一起来看下吧因为最近用报表导出比较多,所有就提成了一个工具类,本工具类使用的场景为 根据提供的模板来导出Excel报表并且可根据提供的模板Sheet页进行复制 从而实现多个Sheet页的需求,使用本工具类时,如果需求是每个Sheet页中的数据都不一致,但是表格样式和模板都一样那么...

weixin_39840153的博客 1541

java导出包含多个sheet的Excel代码示例

主要介绍了java导出包含多个sheet的Excel,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

编码技巧——使用Easypoi导出Excel、多sheet、模板导出

本文主要介绍easypoi导出Excel的代码示例;自己之前手动实现过导出工具类《编码技巧——导出工具类》,基于实体和注解,通过反射来映射实体字段和exce列的关系;在部分工程里面看到了easypoi的二方包,于是准备试用下,记录下如何引入并使用Easypoi的过程;

娜娜米的博客 1万+

操作系统原理:【优麒麟】linux内核添加系统调用

在底端添加如下代码。

Joyce_zz的博客 2709

ABAP内表数据导出Excel:OLE、ALV与GUI_DOWNLOAD方案全解析

在企业级应用开发中,数据导出是连接后台系统与前端业务分析的关键桥梁。其核心原理是将结构化数据转换为通用文件格式,以实现跨平台的数据交换与可视化。从技术价值看,一个健壮的导出功能能显著提升数据处理效率,减少人工干预,是衡量系统实用性的重要指标。常见的应用场景包括报表生成、数据交接和临时数据提取。本文聚焦于SAP ABAP开发领域,深入探讨如何将内表数据高效、稳定地导出至Excel,涵盖了OLE自动化、ALV标准导出以及基于CL_GUI_FRONTEND_SERVICES与GUI_DOWNLOAD的通用方案,并

weixin_32715349的博客 324

Java使用poi导出excel文件包含多个sheet

最近一次小需求要求对一个页面的两个报表通过点击一个导出按钮导出到一个excel中,当然,是要求在一个excel中建立多个sheet来保存两个报表的数据,否则全部放置在一个报表中就没有意义了,记录一下,以免下次使用CV大法的使用 讲讲详细的过程 1.页面          如上图,点击导出明细按钮,要将查询条件查询出的两个表中的数据导出到一个excel,分成两个sheet 2.js代码...

bigbear776的博客 7353

混沌系统在图像加密中的应用(二维离散Hénon混沌映射)

Hénon映射是一种二维离散时间动力系统,由美国数学家Michel Hénon在1976年引入。它是混沌动力系统中的经典模型之一,具有简单的形式和复杂的行为。

weixin_42207434的博客 2490
上一篇: jquery jqgrid cellEdit为true的时候,默认选中单元格值
下一篇: 关于JAVA Jquery jqgrid的subGrid子表格
加州小熊
博客等级 码龄16年 46粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值