java使用EasyExcel導(dǎo)入導(dǎo)出excel
一、準(zhǔn)備工作
1、導(dǎo)包
<!-- poi 相關(guān)--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <!-- esayexcel 2.1.7 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.7</version> </dependency>
二、了解注解
1、常用注解
| 字段注解 | 類注解 |
|---|---|
| @ColumnWith(列寬) | @ColumnWidth(全局列寬) |
| @ExcelProperty(字段配置) | @HeadFontStyle(頭樣式) |
| @HeadRowHeight(標(biāo)題高度) | |
| @ContentFontStyle(內(nèi)容字體樣式) | |
| @ContentRowHeight(內(nèi)容高度) |
2、@ExcelProperty注解
必要的一個(gè)注解,注解中有三個(gè)參數(shù)value,index分別代表列明,列序號(hào)
value和index只能二選一,通常不用設(shè)置converter
1.value 通過標(biāo)題文本對(duì)應(yīng)
2.index 通過文本行號(hào)對(duì)應(yīng)
@ExcelProperty(value = "編號(hào)", index = 0) private Long id;
3、@ColumnWith注解
設(shè)置列寬度,只有一個(gè)參數(shù)value,value的單位是字符長度,最大可以設(shè)置255個(gè)字符,因?yàn)橐粋€(gè)excel單元格最大可以寫入的字符個(gè)數(shù)就是255個(gè)字符
public class ImeiEncrypt {
@ColumnWidth(value = 255) //excel單個(gè)單元格最大長度255
private String message;
}
4、@ContentFontStyle注解
用于設(shè)置單元格內(nèi)容字體格式的注解
| 參數(shù) | 含義 |
|---|---|
| fontName | 字體名稱 |
| fontHeightInPoints | 字體高度 |
| italic | 是否斜體 |
| strikeout | 是否設(shè)置刪除水平線 |
| color | 字體顏色 |
| typeOffset | 偏移量 |
| underline | 下劃線 |
| bold | 是否加粗 |
| charset | 編碼格式 |
5、@ContentStyle注解
設(shè)置內(nèi)容格式注解
| 參數(shù) | 含義 |
|---|---|
| dataFormat | 日期格式 |
| hidden | 設(shè)置單元格使用此樣式隱藏 |
| locked | 設(shè)置單元格使用此樣式鎖定 |
| quotePrefix | 在單元格前面增加`符號(hào),數(shù)字或公式將以字符串形式展示 |
| horizontalAlignment | 設(shè)置是否水平居中 |
| wrapped | 設(shè)置文本是否應(yīng)換行。將此標(biāo)志設(shè)置為true通過在多行上顯示使單元格中的所有內(nèi)容可見 |
| verticalAlignment | 設(shè)置是否垂直居中 |
| rotation | 設(shè)置單元格中文本旋轉(zhuǎn)角度。03版本的Excel旋轉(zhuǎn)角度區(qū)間為-90°90°,07版本的Excel旋轉(zhuǎn)角度區(qū)間為0°180° |
| indent | 設(shè)置單元格中縮進(jìn)文本的空格數(shù) |
| borderLeft | 設(shè)置左邊框的樣式 |
| borderRight | 設(shè)置右邊框樣式 |
| borderTop | 設(shè)置上邊框樣式 |
| leftBorderColor | 設(shè)置左邊框顏色 |
| rightBorderColor | 設(shè)置右邊框顏色 |
| topBorderColor | 設(shè)置上邊框顏色 |
| bottomBorderColor | 設(shè)置下邊框顏色 |
| fillPatternType | 設(shè)置填充類型 |
| fillBackgroundColor | 設(shè)置背景色 |
| shrinkToFit | 設(shè)置自動(dòng)單元格自動(dòng)大小 |
6、@HeadFontStyle注解
用于定制標(biāo)題字體格式
| 參數(shù) | 含義 |
|---|---|
| fontName | 設(shè)置字體名稱 |
| fontHeightInPoints | 設(shè)置字體高度 |
| italic | 設(shè)置字體是否斜體 |
| strikeout | 是否設(shè)置刪除線 |
| color | 設(shè)置字體顏色 |
| typeOffset | 設(shè)置偏移量 |
| underline | 設(shè)置下劃線 |
| charset | 設(shè)置字體編碼 |
| bold | 設(shè)置字體是否加粗 |
7、ExcelIgnore注解
不將該字段轉(zhuǎn)換成Excel
三、編碼
1、映射實(shí)體類----例子
package com.pingou.admin.bean.param;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@ContentRowHeight(35) //文本行高度
@HeadRowHeight(40) //標(biāo)題高度
@ColumnWidth(40)
public class OrderExcel {
//設(shè)置excel表頭名稱
@ExcelProperty(value = "編號(hào)", index = 0)
private Long id;
@DateTimeFormat("yyyy年MM月dd日HH時(shí)mm分ss秒")
@ExcelProperty(value = "創(chuàng)建時(shí)間", index = 1)
private Date createTime;
}
以上是簡單的舉例,如果有更多屬性自己逐個(gè)寫就好,然后塞進(jìn)該實(shí)體類就好~
2、生成excel
public void excel() {
//欲導(dǎo)出excel的數(shù)據(jù)結(jié)果集
List<OrderExcel> excel = new ArrayList<>();
//省略 向結(jié)果集里插入數(shù)據(jù)的操作
//UUID生成唯一name
String name = UUID.randomUUID().toString().replaceAll("-", "") + ".xlsx";
//實(shí)現(xiàn)excel寫的操作
//1 設(shè)置寫入文件夾地址和excel文件名稱
String filename = "/路徑" + name;
JSONObject json = new JSONObject();
try {
// 2 調(diào)用easyexcel里面的方法實(shí)現(xiàn)寫操作
// write方法兩個(gè)參數(shù):第一個(gè)參數(shù)文件路徑名稱,第二個(gè)參數(shù)實(shí)體類class
EasyExcel.write(filename, OrderExcel.class).sheet("名字").doWrite(excel);
//上傳到fastdfs上 不上傳的話只有本機(jī)可以找到,在上面路徑下生成excel
File file = new File(filename);
String path = fastDFSClient.upload(new FileInputStream(file), name, null);
path = (this.fastdfsDomain + path);
json.put("url", path);
} catch (IOException e) {
e.printStackTrace();
} finally {
new File(filename).delete();
}
}
以上,就生成完畢了
四、結(jié)果

以上就是java使用EasyExcel導(dǎo)入導(dǎo)出excel的詳細(xì)內(nèi)容,更多關(guān)于java 用EasyExcel導(dǎo)入導(dǎo)出excel的資料請關(guān)注腳本之家其它相關(guān)文章!
- SpringBoot中EasyExcel實(shí)現(xiàn)Excel文件的導(dǎo)入導(dǎo)出
- SpringBoot集成EasyExcel實(shí)現(xiàn)Excel導(dǎo)入的方法
- SpringBoot整合EasyExcel實(shí)現(xiàn)文件導(dǎo)入導(dǎo)出
- Java+EasyExcel實(shí)現(xiàn)文件的導(dǎo)入導(dǎo)出
- EasyExcel實(shí)現(xiàn)導(dǎo)入+各種數(shù)據(jù)校驗(yàn)功能
- Java使用EasyExcel實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出
- Java使用easyExcel批量導(dǎo)入數(shù)據(jù)詳解
- Java?EasyExcel導(dǎo)入帶圖片的完整過程記錄
相關(guān)文章
記一次線上SpringCloud Feign請求服務(wù)超時(shí)異常排查問題
這篇文章主要介紹了記一次線上SpringCloud Feign請求服務(wù)超時(shí)異常排查問題,本項(xiàng)目與下游項(xiàng)目均注冊在Eureka上面,對(duì)這個(gè)1秒就超時(shí)感到很迷惑,于是開始查閱底層源碼之旅。需要的朋友可以參考下2022-01-01
java中動(dòng)態(tài)代理如何實(shí)現(xiàn)詳解
動(dòng)態(tài)代理是基于接口實(shí)現(xiàn)的代理,mybatis就是用這個(gè)技術(shù)實(shí)現(xiàn)的,下面這篇文章主要給大家介紹了關(guān)于java中動(dòng)態(tài)代理如何實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-01-01
maven利用tomcat插件部署遠(yuǎn)程Linux服務(wù)器的步驟詳解
Maven已經(jīng)是Java的項(xiàng)目管理常用方式,下面這篇文章主要給大家介紹了關(guān)于maven利用tomcat插件部署遠(yuǎn)程Linux服務(wù)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
Spring在@ConditionalOnProperty注解使用詳解
這篇文章主要介紹了Spring在@ConditionalOnProperty注解使用詳解,@ConditionalOnProperty注解是Spring Boot的條件注解,主要用法是根據(jù)配置文件中的屬性來控制某個(gè)配置類是否生效,或者控制某個(gè)Bean是否被創(chuàng)建,需要的朋友可以參考下2023-11-11
Maven依賴管理之parent與dependencyManagement深入分析
首先我們來說說parent標(biāo)簽,其實(shí)這個(gè)不難解釋,就是父的意思,pom也有繼承的。比方說我現(xiàn)在有A,B,C,A是B,C的父級(jí)。現(xiàn)在就是有一個(gè)情況B,C其實(shí)有很多jar都是共同的,其實(shí)是可以放在父項(xiàng)目里面,這樣,讓B,C都繼承A就方便管理了2022-10-10
使用java將動(dòng)態(tài)網(wǎng)頁生成靜態(tài)網(wǎng)頁示例
這篇文章主要介紹了使用java將動(dòng)態(tài)網(wǎng)頁生成靜態(tài)網(wǎng)頁示例,需要的朋友可以參考下2014-03-03
SpringSecurity request過濾問題示例小結(jié)
這篇文章主要介紹了SpringSecurity request過濾問題示例小結(jié),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-02-02
Java實(shí)現(xiàn)Shazam聲音識(shí)別算法的實(shí)例代碼
Shazam算法采用傅里葉變換將時(shí)域信號(hào)轉(zhuǎn)換為頻域信號(hào),并獲得音頻指紋,最后匹配指紋契合度來識(shí)別音頻。這篇文章給大家介紹Java實(shí)現(xiàn)Shazam聲音識(shí)別算法的實(shí)例代碼,需要的朋友參考下吧2018-09-09

