后端给前端导出 数据excal表

pom

       <!-- 读取文档 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version></dependency>

代码

 @GetMapping("exportData")public void exportData(HttpServletResponse response) {// 1. 创建工作空间Workbook workbook = new XSSFWorkbook(); // .xlsx 用 XSSFWorkbook
//        Workbook workbook = new HSSFWorkbook(); // .xls 用 HSSFWorkbook// 2. 创建工作表Sheet sheet = workbook.createSheet("信息");// 2.1 创建标题行(第一行)Row headerRow = sheet.createRow(0);/* 3. 定义一个字体(建议将定义字体这段代码,提取出来进行封装,后续可以定义各式各样的的字体) */// 3.1 创建字体Font headerFont = workbook.createFont();// 3.2 14号大小headerFont.setFontHeightInPoints((short) 14);/* 4. 声明样式 CellStyle,并设置 */// 4.1 创建 styleCellStyle style = workbook.createCellStyle();// 4.2 将字体设置进 style 对象中style.setFont(headerFont);// 4.3 水平和垂直居中style.setAlignment(HorizontalAlignment.CENTER);style.setVerticalAlignment(VerticalAlignment.CENTER);/* 设置列宽和表头样式 */String[] headers = {"列表", "激活码",  "是否使用", "使用用户", "创建人","激活码类型", "创建时间", "激活时间", "到期时间"};for (int i = 0; i < headers.length; i++) {// 设置每一列的宽度sheet.setColumnWidth(i, 230 * 30);// 设置每一列的 style 和 标题Cell headerCell = headerRow.createCell(i);headerCell.setCellStyle(style);headerCell.setCellValue(headers[i]);}/* 读取数据  */List<returnnames> list = selectMemberEffectCode(null,null,null,null,null,null);/* 遍历 */for (int j = 0; j < list.size(); j++) {Row row = sheet.createRow(j + 1);for (int i = 0; i < headers.length; i++) {Cell cell = row.createCell(i);// 每一列的数据与表头对应上if (i == 0) {cell.setCellValue(j+1);} else if (i == 1) {cell.setCellValue(list.get(j).getCode());} else if (i == 2) {cell.setCellValue(list.get(j).getIsuse()?"已使用":"未使用");} else if (i == 3) {cell.setCellValue(list.get(j).getNickname());} else if (i == 4) {cell.setCellValue(list.get(j).getCreateby());}else if (i == 5) {Integer type = list.get(j).getType();if (type==1){cell.setCellValue("年卡");}else if (type==2){cell.setCellValue("月卡");}else {cell.setCellValue("永久卡");}} else if (i == 6) {cell.setCellValue(list.get(j).getCreatedTime());} else if (i == 7) {cell.setCellValue(list.get(j).getActivatedTime());} else  {cell.setCellValue(list.get(j).getExpiredTime());}// 这里将每一数据行的样式设置成和表头样式一样的,建议将 style 样式进行封装,根据不同的需求获取不同的样式cell.setCellStyle(style);}}try (OutputStream osOut = response.getOutputStream()) {// 设置响应类型与编码response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("激活码表.xlsx", "UTF-8"));response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");  // .xlsx 用这个
//            response.setContentType("application/vnd.ms-excel;charset=utf-8"); // .xls 用这个response.setCharacterEncoding("utf-8");// 将指定的字节写入此输出流workbook.write(osOut);// 刷新此输出流并强制将所有缓冲的输出字节被写出osOut.flush();// 关闭流osOut.close();workbook.close();} catch (IOException e) {e.printStackTrace();}}

结果图
在这里插入图片描述
在这里插入图片描述

参考文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/539226.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习-0X-神经网络

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中神经网络算法。 本门课程的目标 完成一个特定行业的算法应用全过程&#xff1a; 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程化接口实现 参考 机器学习定义 关于机…

【JavaScript 漫游】【036】CORS 通信总结

文章简介 CORS 是一个 W3C 标准&#xff0c;全称是“跨域资源共享”&#xff08;Cross-origin resource sharing&#xff09;。它允许浏览器向跨域的服务器&#xff0c;发出 XMLHttpRequest 请求&#xff0c;从而克服了 AJAX 只能同源使用的限制。 本篇文章为【JavaScript 漫…

x6.js 从流程图组件库中拖拽组件到画布dnd使用

上一篇已经了解到了x6.js常用功能以及使用方法。但我们使用流程图的时候还少不了一个非常重要的功能那就是拖拽组件库里的组件进来。如下图&#xff1a; 首先是布局这块&#xff0c;拖拽组件库的视图中布局无需我们去写&#xff0c;我们只需把界面搭建好。 添加组件库 1.搭建布…

Opencascade基础教程(9):切换视图

1、切换视图 1、1 增加视图切换按钮&#xff0c;并添加消息响应函数。 void COCCDemoView::OnButtonFrontview() {//前视图m_View->SetProj(V3d_Yneg);m_View->FitAll(); }void COCCDemoView::OnButtonRearview() {//后视图m_View->SetProj(V3d_Ypos);m_View->Fit…

<JavaEE> 了解网络层协议 -- IP协议

目录 初识IP协议 什么是IP协议&#xff1f; IP协议中的基础概念 IP协议格式 图示 4bit版本号&#xff08;version&#xff09; 4bit头部长度&#xff08;headerlength&#xff09; 8bit服务类型&#xff08;TypeOfService&#xff09; 16bit总长度&#xff08;total l…

数据仓库原理(二)

目录 四、数据仓库的概念模型&#xff08;一&#xff09;多维数据模型&#xff08;二&#xff09;维度与粒度 五、数据仓库的逻辑模型&#xff08;一&#xff09;多维模型&#xff08;二&#xff09;星形模型&#xff08;三&#xff09;雪花模型 六、数据仓库的物理模型&#x…

吴恩达深度学习笔记:神经网络的编程基础2.9-2.14

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第二周&#xff1a;神经网络的编程基础 (Basics of Neural Network programming)2.9 逻辑回归中的梯度下降&#xff08;Logistic Regression Gradient Descent&#xff09; 第一门课&#xff…

RabbitMQ 模拟实现【五】:网络通信设计

文章目录 网络通信设计基于 TCP 自定义应用层协议channel参数服务器实现客户端实现 网络通信设计 基于 TCP 自定义应用层协议 Type 希望客户端能远程调用服务器的核心API&#xff0c;type就是描述调用哪一个API的Length 表示接下来的Payload的长度Payload 是真正需要用到的数据…

人工智能|机器学习——CURE聚类算法(层次聚类)

1.CURE聚类概述 绝大多数聚类算法或者擅长处理球形和相似大小的聚类&#xff0e;或者在存在孤立点时变得比较脆弱。CURE采用了一种新颖的层次聚类算法&#xff0e;该算法选择基于质心和基于代表对象方法之间的中间策略。它不同于单个质心或对象来代表一个类&#xff0c;而是选择…

【Jenkins】data stream error|Error cloning remote repo ‘origin‘ 错误解决【亲测有效】

错误构建日志 17:39:09 ERROR: Error cloning remote repo origin 17:39:09 hudson.plugins.git.GitException: Command "git fetch --tags --progress http://domain/xxx.git refs/heads/*:refs/remotes/origin/*" returned status code 128: 17:39:09 stdout: 17…

粒子群算法对pi控制器进行参数优化,随时优化pi参数以控制直流无刷电机转速。

粒子群算法对pi控制器进行参数优化&#xff0c;随时优化pi参数以取得设定直流无刷电机转速。 PSO优化PID&#xff0c;用于BLDC速度控制 仿真平台为&#xff1a;MATLAB 采用的是Simulinkm程序相配合 仿真结果以及程序示例&#xff1a;

Python数据分析-4

1.对于一组电影数据&#xff0c;呈现出rating,runtime的分布情况&#xff1a; #encodingutf-8 import pandas as pd import numpy as np from matplotlib import pyplot as plt file_path "./youtube_video_data/IMDB-Movie-Data.csv" df pd.read_csv(file_path) …