vue+Java 实现前后端Excel导出
1. 按钮设置
使用avue的导出功能可以查看官网
https://www.avuejs.com/default/export.html


我这里使用的是自定义的按钮,并且自己实现了Excel的导出
2、Java后端代码
(1)定义Excel工具类
这个工具类是根据ExcelWriter 这个类进行创建的
public class ExcelExportUtils {
public static void exportExcelByResponse(ExcelWriter excelWriter, HttpServletResponse response, String fileName, HttpServletRequest request) throws IOException {
String userAgent = request.getHeader("USER-AGENT");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
if (StringUtils.contains(userAgent, "MSIE") || StringUtils.contains(userAgent, "Trident") || StringUtils.contains(userAgent, "Edge")) {
//IE 浏览器
fileName = URLEncoder.encode(fileName, "UTF8");
} else {
//火狐,google等其他浏览器
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
}
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
//客户端不缓存
response.setCharacterEncoding("UTF-8");
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
Workbook workbook = excelWriter.getWorkbook();
ServletOutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
//关闭缓存
workbook.close();
outputStream.close();
}
}
(2)创建枚举类来指定Excel表格中头标题的别名
/**
* Excel表格别名定义
* @author fanxiaoxuan
* @version 1.0
* @since 2021/12/15 10:42
*/
public enum SplitExportEnum {
PLAT_NO("platNo","平台编号"),
BIZ_ORDER_NO("bizOrderNo","业务单号"),
ORDER_NO("orderNo","支付单号"),
BUSINESS_TYPE("businessType","业务类型"),
BIZ_SPLIT_NO("bizSplitNo","业务分账单号"),
SPLIT_NO("splitNo","支付分账单号"),
TRANS_TIME("transTime","分账时间"),
MEMBER_NO("memberNo","会员号"),
MEMBER_NAME("memberName","会员名称"),
SPLIT_TYPE("splitType","分账类型"),
ORDER_AMT("orderAmt","订单金额"),
SPLIT_AMT("splitAmt","分账金额"),
CLEAR_TIME("clearTime","清算时间"),
SETTLE_TIME("settleTime","结算时间"),
CHANNEL_FLOW_NO("channelFlowNo","渠道流水号");
private String name; //字段名称</

本文介绍了如何使用vue.js和Java实现前后端配合导出Excel文件。在前端,通过avue的导出功能或者自定义按钮触发Excel导出;在后端,编写Excel工具类和业务代码来生成Excel文件。在数据传输过程中,确保后端返回的文件类型为blob,以防止乱码。同时,若数据类型不匹配,需进行类型转换,以保证正确下载。
最低0.47元/天 解锁文章
737

被折叠的 条评论
为什么被折叠?



