当前位置: 首页 > wzjs >正文

商业网站开发文档优化大师官网

商业网站开发文档,优化大师官网,深圳整站,免费看电视剧的网站有哪些🧠 一、为什么用 EasyExcel? 在 Java 开发中,操作 Excel 的框架主要有: Apache POI(经典但慢、内存占用大) JXL(老旧不维护) Alibaba EasyExcel(阿里出品,…

🧠 一、为什么用 EasyExcel?

在 Java 开发中,操作 Excel 的框架主要有:

  • Apache POI(经典但慢、内存占用大)

  • JXL(老旧不维护)

  • Alibaba EasyExcel(阿里出品,性能好,写入快,注解灵活)

EasyExcel 优点:

  • 注解式开发,简单直观

  • 支持大量数据写入不 OOM

  • 支持复杂表头、样式、合并单元格

今天我们用 EasyExcel 实现后端导出 Excel 文件并支持前端下载。


📦 二、添加依赖(Maven)

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version>
</dependency>

🧱 三、定义导出数据结构

创建一个导出用的数据对象(VO),使用 @ExcelProperty 注解指定表头名和字段顺序:

package com.example.excel.vo;import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;@Data
public class UserExportVO {@ExcelProperty(value = "用户名", index = 0)private String username;@ExcelProperty(value = "手机号", index = 1)private String phone;@ExcelProperty(value = "注册时间", index = 2)private String registerTime;
}

🖥️ 四、后端导出接口

创建一个下载接口,核心是将 Excel 写入 HttpServletResponse 输出流。

@GetMapping("/api/export")
public void exportUserList(HttpServletResponse response) throws IOException {List<UserExportVO> dataList = getMockData(); // 获取数据(或从数据库查询)// 设置响应头response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");response.setCharacterEncoding("utf-8");String fileName = URLEncoder.encode("用户信息导出", "UTF-8").replaceAll("\\+", "%20");response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");// 写数据到响应输出流EasyExcel.write(response.getOutputStream(), UserExportVO.class).sheet("用户信息").doWrite(dataList);
}

✅ 示例 mock 数据方法

private List<UserExportVO> getMockData() {List<UserExportVO> list = new ArrayList<>();for (int i = 1; i <= 10; i++) {UserExportVO user = new UserExportVO();user.setUsername("用户" + i);user.setPhone("188888888" + i);user.setRegisterTime("2025-04-10");list.add(user);}return list;
}

🌐 五、前端调用方式

方式一:直接触发下载(window.open)

window.open('/api/export', '_blank');

方式二:使用 Axios 下载 Blob

axios({url: '/api/export',method: 'GET',responseType: 'blob'
}).then((res) => {const blob = new Blob([res.data], { type: res.headers['content-type'] });const link = document.createElement('a');link.href = window.URL.createObjectURL(blob);link.download = '用户信息.xlsx';link.click();
});

🧩 六、常见问题解答

❓1. 文件名乱码?

✅ 使用 URLEncoder.encode(fileName, "UTF-8") 编码,并加 replaceAll("\\+", "%20")

❓2. 表头顺序错乱?

✅ 使用 @ExcelProperty(index = x) 指定每列的顺序。

❓3. 导出文件打不开?

✅ 确保响应头设置正确,文件类型为 application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

❓4. 导出大量数据内存溢出?

✅ EasyExcel 默认使用 streaming write,但建议分页获取数据、分批写入。


📌 七、结语

到这里,我们已经完成了:

✅ 使用 EasyExcel 构建导出数据结构
✅ 实现了后端文件流输出接口
✅ 支持前端触发导出并自动下载 Excel

📁 导出功能在企业系统中非常常见,如果你在写后台管理系统,这篇教程绝对值得收藏!

http://www.dtcms.com/wzjs/224598.html

相关文章:

  • 做维修广告效最好是哪个网站吗seo综合查询 站长工具
  • 做网站联系方式武汉大学人民医院怎么样
  • 网站首页设计多少钱篮网最新消息
  • 上海论坛网站建设网页链接制作生成
  • 秋林 做网站seo搜索引擎优化报价
  • 广州公安局门户网站云盘搜
  • 吴江企业建设网站青岛网站建设方案
  • 昆明参差网站佛山seo联系方式
  • 定制网站开发方案深圳网络推广招聘
  • 提供网站建设工具的公司网推什么平台好用
  • 广州网站建设studstuseo搜索引擎优化薪资水平
  • 百度不收录什么网站网址域名注册
  • wordpress文章页打不开了重庆百度搜索优化
  • 如何给自己的网站做外链南宁网站推广营销
  • 服务器做网站教程企业培训师资格证
  • php做音乐网站前端性能优化有哪些方法
  • 做网站公司官网手机百度登录入口
  • 兴义网站网站建设百度网站排名优化软件
  • 商旅网站制作全国分站seo
  • 中国建筑行业网站优化seo
  • 非常旺财的公司名字深圳seo教程
  • wordpress自定义注册页面模板搜索引擎优化的英文缩写是什么
  • 家庭装修图片朝阳网站seo
  • 可以做公司网站北京专业网站优化
  • 网站 图片延时加载百度指数是干嘛的
  • 百度做网站的公司最新清远发布
  • 网站建设三秒原则国内专业seo公司
  • 一个网站如何做双语北京网站优化体验
  • 官方网站链接如何做长春网站优化方案
  • 易语言可以做网站后端浅议网络营销论文