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

相关文章

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

C#实现将Excel工作表拆分为多个窗格

《C#实现将Excel工作表拆分为多个窗格》在日常工作中,我们经常需要处理包含大量数据的Excel文件,本文将深入探讨如何在C#中利用强大的Spire.XLSfor.NET自动化实现Excel工作表的... 目录为什么需要拆分 Excel 窗格借助 Spire.XLS for .NET 实现冻结窗格(Fro

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

使用Python实现高效复制Excel行列与单元格

《使用Python实现高效复制Excel行列与单元格》在日常办公自动化或数据处理场景中,复制Excel中的单元格、行、列是高频需求,下面我们就来看看如何使用FreeSpire.XLSforPython... 目录一、环境准备:安装Free Spire.XLS for python二、核心实战:复制 Exce

pandas批量拆分与合并Excel文件的实现示例

《pandas批量拆分与合并Excel文件的实现示例》本文介绍了Pandas中基于整数位置的iloc和基于标签的loc方法进行数据索引和切片的操作,并将大Excel文件拆分合并,具有一定的参考价值,感... 目录一、Pandas 进行索引和切编程片的iloc、loc方法二、Pandas批量拆分与合并Exce

使用C#导出Excel数据并保存多种格式的完整示例

《使用C#导出Excel数据并保存多种格式的完整示例》在现代企业信息化管理中,Excel已经成为最常用的数据存储和分析工具,从员工信息表、销售数据报表到财务分析表,几乎所有部门都离不开Excel,本文... 目录引言1. 安装 Spire.XLS2. 创建工作簿和填充数据3. 保存为不同格式4. 效果展示5

Java轻松实现在Excel中插入、提取或删除文本框

《Java轻松实现在Excel中插入、提取或删除文本框》在日常的Java开发中,我们经常需要与Excel文件打交道,当涉及到Excel中的文本框时,许多开发者可能会感到棘手,下面我们就来看看如何使用J... 目录Java操作Excel文本框的实战指南1. 插入Excel文本框2. 提取Excel文本框内容3

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

使用C#实现Excel与DataTable的相互转换

《使用C#实现Excel与DataTable的相互转换》在软件开发中,Excel文件和DataTable是两种广泛使用的数据存储形式,本文将介绍如何通过C#实现Excel文件与Data... 目录安装必要的库从 Excel 导出数据到 DataTable从 DataTable 导入数据到 Excel处理 E

Python操作Excel的实用工具与库openpyxl/pandas的详细指南

《Python操作Excel的实用工具与库openpyxl/pandas的详细指南》在日常数据处理工作中,Excel是最常见的数据文件格式之一,本文将带你了解openpyxl和pandas的核心用法,... 目录一、openpyxl:原生 Excel 文件操作库1. 安装 openpyxl2. 创建 Exc