【工具类】Excel导出那些事儿(三)

2024-08-26 02:08
文章标签 工具 excel 导出 事儿

本文主要是介绍【工具类】Excel导出那些事儿(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      导出Excel又有了新的需求,之前都是直接导出list<T>,现需要导出List<map>,并且需要动态创建表头。如下:

【工具类】

引用jxl包

 

public class ListMapExportExcelUtil {/*** 写excel.** @param fileName         文件名* @param sheetName        sheet名* @param mapKeyListString map的key,表头们* @param dataListMap      数据*/public static void writeExcel(HttpServletResponse response,String fileName,String sheetName,List<String> mapKeyListString, List<Map<String, Object>> dataListMap) throws EngineException {WritableWorkbook wwb = null;OutputStream os = null;try {os = response.getOutputStream();wwb = Workbook.createWorkbook(os);WritableSheet ws = wwb.createSheet(sheetName, 0);int size = mapKeyListString.size();insertHead(ws, mapKeyListString);int rownum = 1;if ((dataListMap != null) && (dataListMap.size() > 0)) {for (int i = 0; i < dataListMap.size(); i++) {LogUtil.getAppLogger().info("当前行数为:{}",i);Map map = (Map) dataListMap.get(i);for (int j = 0; j < mapKeyListString.size(); j++) {if(map.get(mapKeyListString.get(j)) != null ){insertCell(ws, null, rownum, j, map.get(mapKeyListString.get(j)).toString());}else{insertCell(ws, null, rownum, j, " ");}}rownum++;}}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");response.setContentType("application/msexcel");response.addHeader("Content-disposition", "attachment;" +"filename=" + fileName + "_" + sdf.format(new Date()) + ".xls");wwb.write();} catch (Exception e) {throw new Exception(e);} finally {try {if (wwb != null)wwb.close();if (os != null)os.close();} catch (Exception e) {throw new Exception(e);}}}//单元格private static void insertCell(WritableSheet writableSheet, WritableCellFormat writableCellFormat, int row, int column, String name) throws RowsExceededException, WriteException {WritableCell cell = new Label(column, row, name);if (writableCellFormat != null) {cell.setCellFormat(writableCellFormat);}writableSheet.addCell(cell);}//表头private static void insertHead(WritableSheet writableSheet, List<String> titleColumn) throws RowsExceededException, WriteException, EngineException {WritableFont writableFont = new WritableFont(WritableFont.TIMES, 12, WritableFont.BOLD);WritableCellFormat writableCellFormat = new WritableCellFormat(writableFont);try {writableCellFormat.setAlignment(Alignment.CENTRE);} catch (WriteException e) {throw new EngineException(CodeEnum.PARAM_FORMAT_ERROR.getCode(),CodeEnum.PARAM_FORMAT_ERROR.getMessage(),e);}for (int i = 0; i < titleColumn.size(); i++) {WritableCell cell = new Label(i, 0, titleColumn.get(i));cell.setCellFormat(writableCellFormat);writableSheet.addCell(cell);}}
}

 

 

 

 

 

这篇关于【工具类】Excel导出那些事儿(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107248

相关文章

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核