news 2026/4/19 17:43:58

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/4/18 9:45:09

高亮度LED恒流驱动电路深度剖析

高亮度LED恒流驱动:从原理到实战的系统性拆解你有没有遇到过这样的情况?明明选了高品质的LED灯珠,电路也照着典型应用图连好了,结果点亮后光输出忽明忽暗,甚至用不了几天就烧了MOS管。问题出在哪?十有八九&…

作者头像 李华
网站建设 2026/4/19 4:48:36

使用VibeVoice制作儿童故事音频:亲子内容创作新方式

使用VibeVoice制作儿童故事音频:亲子内容创作新方式 在智能家居设备日益复杂的今天,确保无线连接的稳定性已成为一大设计挑战。然而,在另一个看似不相关的领域——亲子内容创作中,技术进步同样正在悄然重塑我们的日常体验。想象一…

作者头像 李华
网站建设 2026/4/18 10:01:57

AI助力快速获取CENTOS8下载资源

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个AI辅助工具,自动识别并推荐CENTOS8的官方下载地址。功能包括:1. 自动检测用户所在地区,推荐最近的镜像站点;2. 验证下载链接…

作者头像 李华
网站建设 2026/4/19 2:13:03

VibeVoice vs 传统TTS:对话级语音合成的技术革新之路

VibeVoice vs 传统TTS:对话级语音合成的技术革新之路 在播客制作间里,一位内容创作者正面对着屏幕发愁——她需要录制一期45分钟的三人对谈节目,角色包括主持人、技术专家和人文学者。过去,这意味着反复录音、剪辑、配音调整&…

作者头像 李华