日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

在SpringBoot: SpringBoot里面創(chuàng)建導(dǎo)出Excel的接口教程

瀏覽:209日期:2022-06-16 17:20:22

在Web項(xiàng)目中,難免需要導(dǎo)出Excel這樣的功能,后端接口怎么實(shí)現(xiàn)呢,Controller代碼在下面,復(fù)制到項(xiàng)目的Controller中即可使用:

首先加入Excel的依賴,本例中我們用apache的poi:

<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version></dependency>

后臺(tái)導(dǎo)出Excel的Controller接口代碼:

import org.apache.poi.hssf.usermodel.*;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@Controllerpublic class ExcelController { /** * Excel表格導(dǎo)出接口 * http://localhost:8080/ExcelDownload * @param response response對(duì)象 * @throws IOException 拋IO異常 */ @RequestMapping('/ExcelDownload') public void excelDownload(HttpServletResponse response) throws IOException { //表頭數(shù)據(jù) String[] header = {'ID', '姓名', '性別', '年齡', '地址', '分?jǐn)?shù)'}; //數(shù)據(jù)內(nèi)容 String[] student1 = {'1', '小紅', '女', '23', '成都青羊區(qū)', '96'}; String[] student2 = {'2', '小強(qiáng)', '男', '26', '成都金牛區(qū)', '91'}; String[] student3 = {'3', '小明', '男', '28', '成都武侯區(qū)', '90'}; //聲明一個(gè)工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); //生成一個(gè)表格,設(shè)置表格名稱為'學(xué)生表' HSSFSheet sheet = workbook.createSheet('學(xué)生表'); //設(shè)置表格列寬度為10個(gè)字節(jié) sheet.setDefaultColumnWidth(10); //創(chuàng)建第一行表頭 HSSFRow headrow = sheet.createRow(0); //遍歷添加表頭(下面模擬遍歷學(xué)生,也是同樣的操作過程) for (int i = 0; i < header.length; i++) { //創(chuàng)建一個(gè)單元格 HSSFCell cell = headrow.createCell(i); //創(chuàng)建一個(gè)內(nèi)容對(duì)象 HSSFRichTextString text = new HSSFRichTextString(header[i]); //將內(nèi)容對(duì)象的文字內(nèi)容寫入到單元格中 cell.setCellValue(text); } //模擬遍歷結(jié)果集,把內(nèi)容加入表格 //模擬遍歷第一個(gè)學(xué)生 HSSFRow row1 = sheet.createRow(1); for (int i = 0; i < student1.length; i++) { HSSFCell cell = row1.createCell(i); HSSFRichTextString text = new HSSFRichTextString(student1[i]); cell.setCellValue(text); } //模擬遍歷第二個(gè)學(xué)生 HSSFRow row2 = sheet.createRow(2); for (int i = 0; i < student2.length; i++) { HSSFCell cell = row2.createCell(i); HSSFRichTextString text = new HSSFRichTextString(student2[i]); cell.setCellValue(text); } //模擬遍歷第三個(gè)學(xué)生 HSSFRow row3 = sheet.createRow(3); for (int i = 0; i < student3.length; i++) { HSSFCell cell = row3.createCell(i); HSSFRichTextString text = new HSSFRichTextString(student3[i]); cell.setCellValue(text); } //準(zhǔn)備將Excel的輸出流通過response輸出到頁面下載 //八進(jìn)制輸出流 response.setContentType('application/octet-stream'); //這后面可以設(shè)置導(dǎo)出Excel的名稱,此例中名為student.xls response.setHeader('Content-disposition', 'attachment;filename=student.xls'); //刷新緩沖 response.flushBuffer(); //workbook將Excel寫入到response的輸出流中,供頁面下載 workbook.write(response.getOutputStream()); }}

然后訪問接口,彈出頁面:

在SpringBoot: SpringBoot里面創(chuàng)建導(dǎo)出Excel的接口教程

下載該Excel,打開后如下圖:

在SpringBoot: SpringBoot里面創(chuàng)建導(dǎo)出Excel的接口教程

至此為止,SpringBoot的后臺(tái)Controller接口導(dǎo)出Excel數(shù)據(jù)表,已成功實(shí)現(xiàn)!

后來我封裝了一個(gè)靜態(tài)方法,可以在項(xiàng)目中作為工具類使用:

import org.apache.poi.hssf.usermodel.*;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.List;/** * Excel工具類 */public class ExcelUtil { /** * Excel表格導(dǎo)出 * @param response HttpServletResponse對(duì)象 * @param excelData Excel表格的數(shù)據(jù),封裝為List<List<String>> * @param sheetName sheet的名字 * @param fileName 導(dǎo)出Excel的文件名 * @param columnWidth Excel表格的寬度,建議為15 * @throws IOException 拋IO異常 */ public static void exportExcel(HttpServletResponse response, List<List<String>> excelData, String sheetName, String fileName, int columnWidth) throws IOException { //聲明一個(gè)工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); //生成一個(gè)表格,設(shè)置表格名稱 HSSFSheet sheet = workbook.createSheet(sheetName); //設(shè)置表格列寬度 sheet.setDefaultColumnWidth(columnWidth); //寫入List<List<String>>中的數(shù)據(jù) int rowIndex = 0; for(List<String> data : excelData){ //創(chuàng)建一個(gè)row行,然后自增1 HSSFRow row = sheet.createRow(rowIndex++); //遍歷添加本行數(shù)據(jù) for (int i = 0; i < data.size(); i++) { //創(chuàng)建一個(gè)單元格 HSSFCell cell = row.createCell(i); //創(chuàng)建一個(gè)內(nèi)容對(duì)象 HSSFRichTextString text = new HSSFRichTextString(data.get(i)); //將內(nèi)容對(duì)象的文字內(nèi)容寫入到單元格中 cell.setCellValue(text); } } //準(zhǔn)備將Excel的輸出流通過response輸出到頁面下載 //八進(jìn)制輸出流 response.setContentType('application/octet-stream'); //設(shè)置導(dǎo)出Excel的名稱 response.setHeader('Content-disposition', 'attachment;filename=' + fileName); //刷新緩沖 response.flushBuffer(); //workbook將Excel寫入到response的輸出流中,供頁面下載該Excel文件 workbook.write(response.getOutputStream()); //關(guān)閉workbook workbook.close(); }}

以上方法調(diào)用示例:

/** * Excel表格導(dǎo)出接口 * http://localhost:8080/ExcelDownload * @param response response對(duì)象 * @throws IOException 拋IO異常 */@RequestMapping('/ExcelDownload')public void excelDownload(HttpServletResponse response) throws IOException { List<List<String>> excelData = new ArrayList<>(); List<String> head = new ArrayList<>(); head.add('第一列'); head.add('第二列'); head.add('第三列'); List<String> data1 = new ArrayList<>(); data1.add('123'); data1.add('234'); data1.add('345'); List<String> data2 = new ArrayList<>(); data2.add('abc'); data2.add('bcd'); data2.add('cde'); excelData.add(head); excelData.add(data1); excelData.add(data2); String sheetName = '測試'; String fileName = 'ExcelTest.xls'; ExcelUtil.exportExcel(response, excelData, sheetName, fileName, 15);}

以上這篇在SpringBoot: SpringBoot里面創(chuàng)建導(dǎo)出Excel的接口教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: excel
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产亚洲久久| 婷婷久久免费视频| 麻豆精品视频在线| 国产九九精品| 国产日韩欧美中文在线| 免费精品视频| 日韩黄色免费网站| 国产精品久久久久毛片大屁完整版| 日本成人一区二区| 国产免费av一区二区三区| 国产亚洲一区二区三区啪| 国产精品探花在线观看| 国产精品115| 日韩福利一区| 午夜国产一区二区| 免费人成黄页网站在线一区二区| 亚洲精品极品| 欧美激情日韩| 成人精品中文字幕| 老牛国产精品一区的观看方式| 亚洲一卡久久| 日韩不卡手机在线v区| 麻豆一区二区三| 三级精品视频| 中文字幕日韩亚洲| 国产精品99久久久久久董美香| 高清一区二区| 蜜桃成人av| 亚洲精品伊人| 久久精品国产在热久久| 亚洲一级少妇| 欧美日韩国产在线一区| 亚洲三级国产| 黄色网一区二区| 91精品电影| 日韩精品一区二区三区免费视频| 欧美激情麻豆| 免费不卡中文字幕在线| 亚洲精品一级| 日韩综合在线| 国产视频一区欧美| 69堂免费精品视频在线播放| 国产在线观看91一区二区三区| 99视频精品全国免费| 亚洲三区欧美一区国产二区| 久久精品国产网站| 99视频一区| 欧美国产专区| 婷婷综合社区| 欧美激情麻豆| 国精品一区二区| 国产探花一区二区| 欧美91视频| 麻豆精品久久| 另类激情亚洲| 成人在线视频免费看| 亚洲综合不卡| www在线观看黄色| 亚洲69av| 久久久久国产一区二区| 亚洲精选91| 欧美亚洲在线日韩| 国产精久久一区二区| 美女精品一区| 日韩天堂在线| 欧美日韩视频免费看| 欧美1区免费| 精品美女视频| 日韩精品免费观看视频| 欧美日一区二区| 麻豆国产精品| 男人的天堂亚洲一区| 中文字幕系列一区| 国产精品久久国产愉拍| 午夜在线视频观看日韩17c| 色综合五月天| 国产免费播放一区二区| 香蕉视频成人在线观看| 亚洲精品88| 你懂的亚洲视频| 免费成人在线视频观看| 香蕉久久精品| av资源中文在线| 国产欧美日韩亚洲一区二区三区| 欧美日韩国产精品一区二区亚洲| 福利一区二区| 久久精品99久久久| 免费久久精品视频| 在线成人动漫av| 麻豆视频在线看| 国产精品免费大片| 四虎在线精品| 久久电影一区| av一区二区高清| 日韩欧美一区二区三区在线观看 | 欧美成人基地| 欧美国产精品| 日韩成人午夜精品| 亚洲一区二区日韩| 激情91久久| 国产一区日韩一区| www成人在线视频| 日本久久综合| 美女精品视频在线| 国产精品一卡| 国产精品嫩模av在线| 亚洲免费成人av在线| 亚洲一区二区免费在线观看| 一区二区视频欧美| se01亚洲视频| 国产va在线视频| 91综合网人人| 久久久久久久欧美精品| 国产精品亚洲欧美| 久久国产婷婷国产香蕉| 天堂va在线高清一区| 蜜桃久久久久久久| 免费在线观看视频一区| 午夜在线一区二区| 先锋影音国产一区| 石原莉奈一区二区三区在线观看 | 日韩二区三区四区| 婷婷精品在线| 日本国产欧美| 欧美日韩1区2区3区| 国产免费av国片精品草莓男男| 国产乱子精品一区二区在线观看| 日韩精品高清不卡| 国产日韩欧美三级| 精品中国亚洲| 香蕉成人av| 国产高清一区| 中文字幕一区二区精品区| 日韩一区二区三区精品| 国产亚洲精品美女久久久久久久久久| 国产日韩欧美一区二区三区在线观看| 国产精品国码视频| 国产成人a视频高清在线观看| 国产美女高潮在线| 久久精品国产大片免费观看| 五月天综合网站| 蜜桃传媒麻豆第一区在线观看| 日韩精品一卡二卡三卡四卡无卡| 亚洲午夜久久| 国产免费久久| 91亚洲国产| av一区二区高清| 亚洲精品日本| 久久久国产精品入口麻豆| 国产中文在线播放| 亚洲一本视频| 天海翼精品一区二区三区| 国产麻豆精品| 黑人精品一区| 亚洲免费在线| 久久精品xxxxx| 福利一区二区免费视频| 丝袜av一区| 日韩在线播放一区二区| 国产精品传媒麻豆hd| 精品捆绑调教一区二区三区| 先锋影音久久久| 国产精品theporn| 99久久久久国产精品| 亚洲一区导航| 精品久久亚洲| 国产精品呻吟| 欧美激情 亚洲a∨综合| 久久精品国产大片免费观看| 亚洲精选av| 国产a亚洲精品| 国产精品日本欧美一区二区三区| 亚洲欧美一级| 麻豆国产在线| 亚洲我射av| 天堂av在线| 最近国产精品视频| 日本一区二区高清不卡| 亚洲在线免费| 久久久精品区| 在线亚洲自拍| 精品国产一区二区三区噜噜噜| 九一成人免费视频| 国产日本久久| 亚洲国产一区二区三区在线播放| 青草久久视频| 国产综合精品| 国产亚洲高清一区| 99热国内精品| 国产精品久久久久久久久久妞妞| 激情婷婷欧美| 老鸭窝一区二区久久精品| 9色国产精品| 精品国产网站| 婷婷综合福利| 亚洲韩日在线| 久久精品三级| 中文字幕一区二区三区四区久久 | 91成人精品观看| 红桃视频欧美|