excel导出的方法有哪些
这篇文章主要介绍“excel导出的方法有哪些”,在日常操作中,相信很多人在excel导出的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”excel导出的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、前端 JS导出excel
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>haha</title><script src="https://cdn.bootcss/jquery/3.4.1/jquery.min.js"></script> <script type="text/javascript" language="javascript"> $(document).ready(function () { jQuery.support.cors = true; $('#JQuery_AJAX_Test').click(function () { $.ajax({ type: "POST", url: "localhost:18067/manage/orders/export", xhrFields: { responseType: "blob" }, //关键代码 data: "{\"batchExport\":true}", contentType:"application/json", beforeSend: function(request) {request.setRequestHeader("Authorization","5640edc3-49d3-435d-909e-daea076e6890"); }, success: function(retData){dl(retData, "abc.xlsx"); }, error: function(e) {alert(e.toString()); } }); }); });function dl(data, fileName) { if (!data) { return } let url = window.URL.createObjectURL(new Blob([data])) let link = document.createElement('a'); link.style.display = 'none'; link.href = url; link.setAttribute('download', fileName); document.body.appendChild(link); link.click();} </script></head><body> <a href="#" id="JQuery_AJAX_Test">JQuery AJAX Test</a><br/> <div id="result"></div></body></html>
2、服务端代码
import .hutool.core.util.URLUtil;import .hutool.poi.excel.ExcelReader;import .hutool.poi.excel.ExcelUtil;import .hutool.poi.excel.ExcelWriter;import lombok.extern.slf4j.Slf4j;import org.apachemons.lang3.StringUtils;import org.apache.poi.xssf.streaming.SXSSFSheet;import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.IOException;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.List;import java.util.Map;import java.util.Objects;/** * Description ExcelHelper * Date 2022/3/25 11:43 * * @author by mays */@Slf4jpublic class ExcelHelper { /** * * @param response response * @param rows rows * @param headerAlias headerAlias * @throws IOException IOException */ public static void excelWriter(HttpServletResponse response, //List<Map<String, Object>> rows, List<Object> rows, Map<String, String> headerAlias) throws IOException { String fileName = URLUtil.encode(String.format("tmp-%s.xlsx", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS")))); ExcelWriter excelWriter = ExcelUtil.getBigWriter(); excelWriter.setHeaderAlias(headerAlias); // 一次性写出内容,使用默认样式,强制输出标题 excelWriter.write(rows, true); // 设置所有列为自动宽度,不考虑合并单元格 SXSSFSheet sheet = (SXSSFSheet) excelWriter.getSheet(); sheet.trackAllColumnsForAutoSizing(); excelWriter.autoSizeColumnAll(); //response设置excel类型 response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.addHeader("Cache-Control", "no-cache"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName); //写出到的目标流 excelWriter.flush(response.getOutputStream(), true); excelWriter.close(); } /** * * @param file file * @return ExcelReader * @throws IOException IOException */ public static ExcelReader getExcelReader(MultipartFile file) throws IOException { if (Objects.isNull(file) || StringUtils.isBlank(file.getOriginalFilename())) { throw new IllegalArgumentException("文件为空"); } else if (!(file.getOriginalFilename().endsWith(".xlsx") || file.getOriginalFilename().endsWith(".xls"))) { throw new IllegalArgumentException("请上传excel"); } File f = File.createTempFile("pwo-", file.getOriginalFilename()); file.transferTo(f); ExcelReader excelReader = new ExcelReader(f, 0); int rowCount = excelReader.getRowCount(); if (rowCount < 1) { throw new IllegalArgumentException("内容为空"); } else if (rowCount > 1000) { throw new IllegalArgumentException("须导入少于1000条的记录"); } return excelReader; }}
3、maven依赖
<!--poi excel about--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>4.1.2</version> </dependency> <!-- hutool --> <dependency> <groupId>.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.6.3</version> </dependency>
到此,关于“excel导出的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注主机评测网网站,小编会继续努力为大家带来更多实用的文章!
下一篇:php设计模式中观察者模式怎么用
webacc.exe是什么文件?webacc.exe是不是病毒
WINSYS.vbs是什么文件?WINSYS.vbs是不是病毒
winssh.exe是什么文件?winssh.exe是不是病毒
wt.exe是什么文件?wt.exe是不是病毒
winsysetm.exe是什么文件?winsysetm.exe是不是病毒
winstrve.exe是什么文件?winstrve.exe是不是病毒
winsysupd7.exe是什么文件?winsysupd7.exe是不是病毒
winsysupd.exe是什么文件?winsysupd.exe是不是病毒
winsysupd2.exe是什么文件?winsysupd2.exe是不是病毒
winsysupd8.exe是什么文件?winsysupd8.exe是不是病毒