news 2026/4/2 21:41:13

Java实现Excel导出列表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java实现Excel导出列表

1、使用XSSFWorkbook进行Excel的渲染、使用XSSFSheet创建一个工作簿

XSSFWorkbook wb = new XSSFWorkbook();// 创建一个Excel文件 XSSFSheet sheet = wb.createSheet("页签");// 创建一个工作簿 // 样式1 XSSFCellStyle style = wb.createCellStyle(); XSSFFont font = wb.createFont(); font.setFontHeightInPoints((short) 14); font.setFontName("宋体"); style.setFont(font); style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);// 垂直 style.setAlignment(XSSFCellStyle.ALIGN_CENTER);// 水平

2、绘制 Excel 表头字段列表

// 表格第一行 XSSFRow row1 = sheet.createRow((short) 0); XSSFCell cell1_1 = row1.createCell((short) 0); cell1_1.setCellValue("序号"); cell1_1.setCellStyle(style); XSSFCell cell1_2 = row1.createCell((short) 1); cell1_2.setCellValue("项目名称"); cell1_2.setCellStyle(style); ........

3、字段设置样式

XSSFCellStyle style2 = wb.createCellStyle(); XSSFFont font2 = wb.createFont(); font2.setFontHeightInPoints((short) 11); font2.setFontName("宋体"); style2.setFont(font2); style2.setWrapText(true);// 开启自动换行需要setWrapText(true)
//设置字体为宋体、大小为11,开启自动换行,垂直居中对齐,水平居中对齐 XSSFCellStyle style3_1 = wb.createCellStyle(); style3_1.setFont(font2); style3_1.setWrapText(true); style3_1.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER); style3_1.setAlignment(XSSFCellStyle.ALIGN_CENTER); // 设置字体为宋体、大小为11,开启自动换行,垂直顶部对齐,水平右对齐 XSSFCellStyle style3_2 = wb.createCellStyle(); style3_2.setFont(font2); style3_2.setWrapText(true); style3_2.setVerticalAlignment(XSSFCellStyle.VERTICAL_TOP); style3_2.setAlignment(XSSFCellStyle.ALIGN_RIGHT);

4、为字段赋值

for (Record record : list) { XSSFRow rowN = sheet.createRow(i++); XSSFCell cellN1 = rowN.createCell((short) 0); cellN1.setCellValue(index++); cellN1.setCellStyle(style3_1); XSSFCell cellN2 = rowN.createCell((short) 1); cellN2.setCellValue(record.getStr("name")); cellN2.setCellStyle(style3_1); }

5、设置字段宽度

sheet.setColumnWidth(0, 1500); sheet.setColumnWidth(1, 5000); sheet.setColumnWidth(2, 5000); ........

6、采用输出流写出文件

OutputStream output = null; try { HttpServletResponse response = getRequestContext().getRes(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Expires", "0"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Pragma", "public"); // 设置头时如果有中文需要用UrlEncode编码一下 String fileNameURL = URLEncoder.encode("名字.xlsx", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename="+fileNameURL+";"+"filename*=utf-8''"+fileNameURL); output = response.getOutputStream(); wb.write(output); output.flush(); requestContext.setRequestComplete(true); } catch (Exception e) { e.printStackTrace(); } finally { if (output != null) { try { wb.close(); output.close(); } catch (IOException e) { e.printStackTrace(); } } }

到此,Excel就可以下载下来了。。。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/21 19:50:03

模拟电路设计基础:电子电路核心要点解析

模拟电路设计的本质:从放大、偏置到稳定性的实战解析你有没有遇到过这样的情况?精心搭建的放大电路,输入一个干净的小信号,结果输出波形却“抽搐”不止——不是削顶就是自激振荡。测电源电流时发现温升明显,甚至芯片发…

作者头像 李华
网站建设 2026/3/27 15:37:33

VibeVoice-WEB-UI使用指南:零基础也能玩转多说话人语音合成

VibeVoice-WEB-UI使用指南:零基础也能玩转多说话人语音合成 在播客、有声书和虚拟会议日益普及的今天,一个现实问题摆在内容创作者面前:如何高效生成自然流畅、角色分明的多人对话音频?传统文本转语音(TTS)…

作者头像 李华
网站建设 2026/4/1 3:03:36

VibeVoice能否应用于有声书制作?长篇小说适配性分析

VibeVoice能否应用于有声书制作?长篇小说适配性分析 在数字内容消费日益“听觉化”的今天,有声书市场正以每年超过20%的增速扩张。然而,传统制作模式依赖专业配音演员、录音棚和漫长的后期流程,导致成本高企、周期冗长。一个典型1…

作者头像 李华
网站建设 2026/3/29 22:11:59

10分钟用快马平台搭建MODBUS通信原型

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 快速开发一个MODBUS通信原型,模拟主站(Master)与从站(Slave)的基本通信。主站发送读取保持寄存器的请求(功能…

作者头像 李华
网站建设 2026/3/31 21:54:41

零基础学会使用Vue-TreeSelect组件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 请创建一个Vue-TreeSelect入门教程项目,包含:1.环境搭建步骤 2.基础组件引入方式 3.最简单的树形数据展示示例 4.如何添加点击事件 5.常见错误及解决方法 6…

作者头像 李华
网站建设 2026/3/26 19:46:09

SQL Server 2022快速体验:5分钟Docker部署方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个SQL Server 2022 Docker快速部署工具,支持一键拉取官方镜像、创建容器并完成基础配置。工具应提供简单的Web界面用于设置SA密码、选择端口映射和存储卷配置。包…

作者头像 李华