news 2026/9/3 0:42:11

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/9/2 1:40:27

VibeVoice能否生成带口音的语音?国际化表达探索

VibeVoice能否生成带口音的语音?国际化表达探索 在播客制作人熬夜剪辑多角色访谈、有声书团队为不同地区角色反复配音的今天,一个核心问题浮现:我们能否让AI一次生成自然流畅、角色分明、甚至带着伦敦腔或德克萨斯口音的长段对话?…

作者头像 李华
网站建设 2026/9/2 23:52:52

VibeVoice-WEB-UI是否提供SDK?二次开发接口规划

VibeVoice-WEB-UI 是否提供 SDK?二次开发接口的演进路径 在播客、有声书和虚拟角色对话日益普及的今天,用户对语音合成的要求早已超越“能说话”这一基本功能。他们需要的是自然流畅、富有情绪张力且角色分明的长时音频内容。然而,传统文本转…

作者头像 李华
网站建设 2026/9/1 4:20:25

公益项目支持:为残障组织免费提供语音生成服务

公益项目支持:为残障组织免费提供语音生成服务 在视障人士试图“阅读”一份政策文件,听障学生需要理解一段教学对话,或是残障组织苦于无法高效制作宣传音频的现实场景中,传统文本转语音(TTS)技术往往显得力…

作者头像 李华
网站建设 2026/8/31 10:35:06

AI助力MC路JS 1.8.8:智能代码生成实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个基于MC路JS 1.8.8的自动化脚本,实现以下功能:1.自动检测游戏中的特定事件;2.根据事件触发自定义动作;3.记录日志并生成统计…

作者头像 李华
网站建设 2026/9/2 22:16:32

vivado固化程序烧写步骤快速理解(Zynq-7000适用)

Zynq-7000固化启动全流程实战指南:从比特流到独立运行你有没有遇到过这样的场景?FPGA逻辑调通了,ARM端程序也跑起来了——一切正常。但当你拔掉JTAG线、断电重启,开发板却“死”了,串口毫无输出。这时你就知道&#xf…

作者头像 李华
网站建设 2026/9/2 22:44:10

播客创作者福音:VibeVoice-WEB-UI一键生成多角色对话音频

播客创作者福音:VibeVoice-WEB-UI一键生成多角色对话音频 在内容创作的赛道上,播客正以前所未有的速度崛起。但对大多数独立创作者而言,制作一期高质量的多人访谈节目依然是一项耗时耗力的任务——不仅要协调嘉宾时间、反复录音剪辑&#xff…

作者头像 李华