springBoot+Vue导出Excel
生活随笔
收集整理的這篇文章主要介紹了
springBoot+Vue导出Excel
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
springBoot+Vue導(dǎo)出Excel
后端下載依賴包: <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>
后端代碼:
@RequestMapping("/testExprotExcelx")public String testExprotExcelx(){try {//創(chuàng)建一個(gè)數(shù)組用于設(shè)置表頭List<String> header =new ArrayList<>();header.add("姓名");header.add("年齡");header.add("性別");//數(shù)據(jù)List<Map<String,String>> list=new ArrayList<>();Map<String ,String> map=new HashMap<>();map.put("姓名","張三");map.put("年齡","12");map.put("性別","男");list.add(map);Map<String ,String> map1=new HashMap<>();map1.put("姓名","李四");map1.put("年齡","13");map1.put("性別","男");list.add(map1);Map<String ,String> map2=new HashMap<>();map2.put("姓名","趙梅");map2.put("年齡","12");map2.put("性別","女");list.add(map2);//聲明一個(gè)工作簿XSSFWorkbook workbook = new XSSFWorkbook();//生成一個(gè)表格,設(shè)置表格名稱為"每日庫存情況表"XSSFSheet sheet = workbook.createSheet("每日庫存情況表");//設(shè)置表格列寬度為10個(gè)字節(jié)sheet.setDefaultColumnWidth(10);//創(chuàng)建第一行表頭XSSFRow headrow = sheet.createRow(0);//遍歷添加表頭for (int i = 0; i < header.size(); i++) {//創(chuàng)建一個(gè)單元格XSSFCell cell = headrow.createCell(i);//創(chuàng)建一個(gè)內(nèi)容對(duì)象XSSFRichTextString text = new XSSFRichTextString(header.get(i));//將內(nèi)容對(duì)象的文字內(nèi)容寫入到單元格中cell.setCellValue(text);}//模擬遍歷結(jié)果集,把內(nèi)容加入表格for (int i = 0; i < list.size(); i++) {XSSFRow row1 = sheet.createRow(i+1);for (int j=0;j<header.size();j++){XSSFCell cell = row1.createCell(j);XSSFRichTextString text = new XSSFRichTextString(list.get(i).get(header.get(j))+"");cell.setCellValue(text);}}//準(zhǔn)備將Excel的輸出流通過response輸出到頁面下載response.setContentType("application/octet-stream");response.setHeader("Content-disposition", "attachment;filename=student.xlsx");//刷新緩沖response.flushBuffer();//workbook將Excel寫入到response的輸出流中,供頁面下載workbook.write(response.getOutputStream());return "導(dǎo)出成功";} catch (Exception e) {e.printStackTrace();return "導(dǎo)出失敗";}}前端代碼:
outExcel(){const loading = this.$loading({lock: true,text: '努力加載中',spinner: 'el-icon-loading',background: 'rgba(0, 0, 0, 0.7)'});this.$axios({method: 'get',url: '/api/inventory/testExprotExcelx',responseType: 'blob'}).then((res) => {const content = res.dataconst blob = new Blob([content])//構(gòu)造一個(gè)blob對(duì)象來處理數(shù)據(jù)const fileName = 'test.xlsx'//對(duì)于<a>標(biāo)簽,只有 Firefox 和 Chrome(內(nèi)核) 支持 download 屬性//IE10以上支持blob但是依然不支持downloadif ('download' in document.createElement('a')) { //支持a標(biāo)簽download的瀏覽器const link = document.createElement('a')//創(chuàng)建a標(biāo)簽link.download = fileName//a標(biāo)簽添加屬性link.style.display = 'none'link.href = URL.createObjectURL(blob)document.body.appendChild(link)link.click()//執(zhí)行下載URL.revokeObjectURL(link.href) //釋放urldocument.body.removeChild(link)//釋放標(biāo)簽} else { //其他瀏覽器navigator.msSaveBlob(blob, fileName)}loading.close()}, (error) => {this.$message.error('請(qǐng)求異常');loading.close()}) },總結(jié)
以上是生活随笔為你收集整理的springBoot+Vue导出Excel的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语言求圆周率近似值改错_新证明解决了如何
- 下一篇: vue --- 模块从子组件获取数据