【工具类】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

相关文章

oracle 11g导入\导出(expdp impdp)之导入过程

《oracle11g导入导出(expdpimpdp)之导入过程》导出需使用SEC.DMP格式,无分号;建立expdir目录(E:/exp)并确保存在;导入在cmd下执行,需sys用户权限;若需修... 目录准备文件导入(impdp)1、建立directory2、导入语句 3、更改密码总结上一个环节,我们讲了

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和