SpringBoot使用POI進(jìn)行Excel下載
本文實(shí)例為大家分享了SpringBoot使用POI進(jìn)行Excel下載的具體代碼,供大家參考,具體內(nèi)容如下
使用poi處理Excel特別方便,此處將處理Excel的代碼分享出來(lái)。
1.maven引用
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency>
2.service邏輯代碼
/**
* 獲取下載模版
*/
public void salaryTemplate(HttpServletResponse response)throws Exception{
HSSFWorkbook workbook = new HSSFWorkbook();
exportExcel(workbook);
response.setHeader("Content-type","application/vnd.ms-excel");
// 解決導(dǎo)出文件名中文亂碼
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+new String("工資模版".getBytes("UTF-8"),"ISO-8859-1")+".xls");
workbook.write(response.getOutputStream());
}
//導(dǎo)入為模版
private void exportExcel(HSSFWorkbook workbook) throws Exception {
//創(chuàng)建創(chuàng)建sheet
HSSFSheet sheet = workbook.createSheet("工資");
//創(chuàng)建單元格樣式
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
//設(shè)置首行標(biāo)題標(biāo)題
HSSFRow headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellStyle(cellStyle);
headerRow.createCell(0).setCellValue("工號(hào)");
headerRow.createCell(1).setCellStyle(cellStyle);
headerRow.createCell(1).setCellValue("姓名");
headerRow.createCell(2).setCellStyle(cellStyle);
headerRow.createCell(2).setCellValue("年齡");
//創(chuàng)建三行數(shù)據(jù)
HSSFRow row;
for (int i = 0; i <4; i++) {
row = sheet.createRow(i + 1);
row.createCell(0).setCellStyle(cellStyle);
row.createCell(0).setCellValue(i);
row.createCell(1).setCellStyle(cellStyle);
row.createCell(1).setCellValue("張三");
row.createCell(2).setCellStyle(cellStyle);
row.createCell(2).setCellValue(19);
}
}
3.controller
@GetMapping("/salary/template")
public void salaryTemplate(HttpServletResponse response)throws Exception{
salaryService.salaryTemplate(response);
}
請(qǐng)求這個(gè)接口,下載下來(lái)就是Excel文件。寫(xiě)的比較簡(jiǎn)單,不過(guò)看代碼基本就能看懂。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot接收Get參數(shù)實(shí)踐過(guò)程
本文主要介紹了在Spring Boot中如何接收不同類型的請(qǐng)求參數(shù),包括在路徑中直接傳遞參數(shù)、跟在問(wèn)號(hào)后面?zhèn)鬟f參數(shù)、使用Map接收參數(shù)、接收數(shù)組以及使用對(duì)象接收參數(shù)等方法2024-12-12
Java8中CompletableFuture使用場(chǎng)景與實(shí)現(xiàn)原理
CompletableFuture是java8引入的新類,該類實(shí)現(xiàn)了Future接口和 CompletionStage接口,封裝了future、forkjoin相關(guān)類來(lái)執(zhí)行異步,這篇文章主要給大家介紹了關(guān)于Java8中CompletableFuture使用場(chǎng)景與實(shí)現(xiàn)原理的相關(guān)資料,需要的朋友可以參考下2022-02-02
SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法
這篇文章主要介紹了SpringBoot封裝自己的Starter的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-04-04
基于Java實(shí)現(xiàn)一個(gè)自己的HTTP瀏覽器
這篇文章主要為大家詳細(xì)介紹了如何基于Java實(shí)現(xiàn)一個(gè)自己的HTTP瀏覽器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-01-01
Java開(kāi)發(fā)中解決Js的跨域問(wèn)題過(guò)程解析
這篇文章主要介紹了Java開(kāi)發(fā)中解決Js的跨域問(wèn)題過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題
這篇文章主要介紹了快速解決springboot在yml配置了啟動(dòng)端口但啟動(dòng)還是8080問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
關(guān)于SpringCloud灰度發(fā)布的實(shí)現(xiàn)
這篇文章主要介紹了關(guān)于SpringCloud灰度發(fā)布的實(shí)現(xiàn),灰度發(fā)布又稱金絲雀發(fā)布,是在系統(tǒng)升級(jí)的時(shí)候能夠平滑過(guò)渡的一種發(fā)布方式,灰度發(fā)布可以保證整體系統(tǒng)的穩(wěn)定,在初始灰度的時(shí)候就可以發(fā)現(xiàn)、調(diào)整問(wèn)題,以保證其影響度,需要的朋友可以參考下2023-08-08
Java中JUC包(java.util.concurrent)下的常用子類
相信大家已經(jīng)對(duì)并發(fā)機(jī)制中出現(xiàn)的很多的常見(jiàn)知識(shí)點(diǎn)進(jìn)行了總結(jié),下面這篇文章主要給大家介紹了關(guān)于Java中JUC包(java.util.concurrent)下的常用子類的相關(guān)資料,文中通過(guò)圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12
Mybatis-plus設(shè)置某個(gè)字段值為null的方法總結(jié)
mybatis-plus以下簡(jiǎn)稱mp,目前應(yīng)該也算是主流的一款數(shù)據(jù)訪問(wèn)層應(yīng)用框架,下面這篇文章主要給大家介紹了關(guān)于Mybatis-plus設(shè)置某個(gè)字段值為null的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07

