Java表數(shù)據(jù)導(dǎo)出到Excel中的實(shí)現(xiàn)
工作中遇到的需求,菜鳥(niǎo)筆記
1.pom中導(dǎo)入所用依賴
<!--導(dǎo)出Excel--> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-base</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-web</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-annotation</artifactId> <version>3.0.3</version> </dependency>
2.創(chuàng)建一個(gè)實(shí)體類來(lái)接收從數(shù)據(jù)庫(kù)查出的數(shù)據(jù)
- 我用到了兩個(gè)表中的數(shù)據(jù),所以我把需要的字段提取出來(lái)寫(xiě)了一個(gè)類
- @ExcelTarget(value = “”)就標(biāo)識(shí)該類要導(dǎo)出為Excel,或者導(dǎo)入Excel的接收對(duì)象。value值其標(biāo)識(shí)作用,不重復(fù)即可,隨便取。
- @Excel(name = “”)就是作用于類屬性上,表示該屬性對(duì)應(yīng)Excel的哪一列,即name的值,當(dāng)然還有其它屬性。
package com.school.grid.business.domain.exam;
import cn.afterturn.easypoi.excel.annotation.ExcelTarget;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
/**
* @author song
* 導(dǎo)出成績(jī)實(shí)體
*/
@Data
@ExcelTarget("exportGrades")
public class ExportGrades {
/**
* 學(xué)員名字
*/
@Excel(name = "學(xué)員名字")
private String userName;
/**
* 學(xué)員身份證號(hào)
*/
@Excel(name = "學(xué)員身份證號(hào)")
private String userIdCardNum;
/**
* 學(xué)員手機(jī)號(hào)
*/
@Excel(name = "學(xué)員手機(jī)號(hào)")
private String userId;
/**
* 考試科目
*/
@Excel(name = "考試科目")
private String paperManageSubject;
/**
* 學(xué)員考試成績(jī)
*/
@Excel(name = "學(xué)員考試成績(jī)")
private String userInfoPaperTtoalScore;
}
3.Controller層
/**
* 導(dǎo)出:姓名、身份證、電話、考試科目、成績(jī)
* @param response
* @param
* @throws IOException
*/
@ApiOperation("成績(jī)導(dǎo)出到excel")
@GetMapping("/export/grades")
public void detailsImport(HttpServletResponse response) throws IOException {
// 告訴瀏覽器用什么軟件可以打開(kāi)此文件
response.setHeader("content-Type", "application/vnd.ms-excel");
// 下載文件的默認(rèn)名稱
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("學(xué)員成績(jī)表導(dǎo)出", StandardCharsets.UTF_8) + ".xls");
//編碼
response.setCharacterEncoding("UTF-8");
//查詢數(shù)據(jù)庫(kù)要導(dǎo)出的數(shù)據(jù)
List<ExportGrades> list = certificateService.exportGrades();
//該方法需要三個(gè)參數(shù):1、需要一個(gè)ExportParams2、要導(dǎo)出實(shí)體類3、導(dǎo)出的數(shù)據(jù)
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(),ExportGrades.class,list);
workbook.write(response.getOutputStream());
}4.sql要查詢的數(shù)據(jù),我用的到兩個(gè)表中的數(shù)據(jù),所以我第二步就新建一個(gè)實(shí)體類來(lái)接收查詢出來(lái)的數(shù)據(jù)

到此這篇關(guān)于Java表數(shù)據(jù)導(dǎo)出到Excel中的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java表導(dǎo)出到Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot集成shiro詳細(xì)教程(小結(jié))
這篇文章主要介紹了spring boot 集成shiro詳細(xì)教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
使用java代碼代替xml實(shí)現(xiàn)SSM教程
這篇文章主要介紹了使用java代碼代替xml實(shí)現(xiàn)SSM教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
Java如何使用spire進(jìn)行word文檔的替換詳解
創(chuàng)作一份文案經(jīng)常會(huì)高頻率地使用某些詞匯,如地名、人名、人物職位等,若表述有誤,就需要整體撤換,下面這篇文章主要給大家介紹了關(guān)于Java如何使用spire進(jìn)行word文檔的替換的相關(guān)資料,需要的朋友可以參考下2023-01-01
關(guān)于SpringBoot的三級(jí)緩存的思考問(wèn)題小結(jié)
文章解析SpringBoot三級(jí)緩存機(jī)制,指出其核心在于通過(guò)提前暴露早期引用解決單例Bean屬性注入的循環(huán)依賴,支持AOP代理,但構(gòu)造函數(shù)注入無(wú)法解決,本質(zhì)是為特殊場(chǎng)景提供生命周期彈性通道,本文給大家介紹對(duì)于SpringBoot的三層緩存的思考,感興趣的朋友一起看看吧2025-10-10
SpringBoot整合Shiro兩種方式(總結(jié))
這篇文章主要介紹了SpringBoot整合Shiro兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Mybatis批量插入返回成功的數(shù)目實(shí)例
這篇文章主要介紹了Mybatis批量插入返回成功的數(shù)目實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
SpringBoot+Mybatis使用Mapper接口注冊(cè)的幾種方式
本篇博文中主要介紹是Mapper接口與對(duì)應(yīng)的xml文件如何關(guān)聯(lián)的幾種姿勢(shì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07

