需求:添加导出功能
1.前端代码:
导出按钮–
<el-button v-has
perm=“dataCount-fl-sync-btn1”
class=“operateBtn”
icon=“el-icon-download”
@click=“export”>导出
引入包
import * as commonMethod from “@/utils/common”;
export(){
let _this = this
this.$confirm('确认导出数据?')
.then(_ => {
_this.exportDevice()
})
.catch(_ => {
});
},
exportDevice(){
let _this = this
var postParams = {
substationId: _this.substationId,
}
commonMethod.exportFile('路径地址', postParams)
},
2.后端代码
@PostMapping(“/exportWeb104Info”)
public void exportWeb104Info(@RequestBody Web104PointVo web104PointVo, HttpServletRequest request, HttpServletResponse response) {
try {
if (web104PointVo == null) {
return;
}
Integer pageIndex = 1;
web104PointVo.setPageNum(pageIndex);
Integer pageSize = 1040000;
web104PointVo.setPageSize(pageSize);
IPage iPage = web104Service.getWeb104Info(web104PointVo);
List vo = new ArrayList<>();
if (iPage != null) {
vo = iPage.getRecords();
}
Map<String, Object> map = new HashMap<>();
map.put(“dataList”, vo);
String basePath = new ClassPathResource(“templates”).getPath();
String excelTempFilePath = basePath + “/模版名.xlsx”;
String expFileName = “模版名.xlsx”;
ExportUtils.excelExport2(request, response, excelTempFilePath, expFileName, map);
} catch (Exception e) {
log.info(“导出信息错误”, e);
}
}
模版示例:
public static void excelExport2(HttpServletRequest request,
HttpServletResponse response, String excelTempFilePath,
String expFileName, Map<String, Object> datas) throws Exception {
response.reset();
// 文件编码转换解决文件名中文乱码
request.setCharacterEncoding("GBK");
// expFileName = new String(expFileName.getBytes("UTF-8"), "iso-8859-1");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(expFileName, "UTF-8"));
response.setContentType("application/vnd.ms-excel");
TemplateExportParams params = new TemplateExportParams(excelTempFilePath);
XSSFWorkbook sheets = new XSSFWorkbook();
Workbook workbook = ExcelExportUtil.exportExcel(params, datas);
OutputStream os = response.getOutputStream();
workbook.write(os);
// 关闭流
os.flush();
os.close();
}