溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中注解學習系列教程-4 使用自定義注解實現(xiàn)excel導出

發(fā)布時間:2020-07-11 09:08:41 來源:網(wǎng)絡 閱讀:432 作者:凱哥Java 欄目:編程語言

本文是《Java中注解學習系列教程》第四篇文章也是小案例文章。

自定義注解小案例是:使用自定義注解實現(xiàn)excel導出。

Excel導出分析:

Java中注解學習系列教程-4 使用自定義注解實現(xiàn)excel導出

有表頭、數(shù)據(jù)值。一般第一行是表頭,從第二行開始就是數(shù)據(jù)了。而且我們可以發(fā)現(xiàn),每個表頭都會對于一列。

如上圖中的。主鍵ID對應的是A列 、姓名對應的是B列、生日對應的是C列、性別對應的是D列。

我們來分析自定義主鍵需要定義哪些?

1:主鍵范圍

2:列對應的中文

3:所在那一列

經(jīng)過分析我們知道,Excel中每一列對應的其實就是對象中的屬性。所有我們知道了:

1:自定義注解Target的范圍是Filed即@Target({ElementType.FIELD})

2:自定義注解的成員變量有一個是中文名稱這個字段。我們?nèi)∶麨椋篠tring ZHName() ;

3:還需要有個成員變量就是指定當前這個屬性或者是中文(表頭)位于哪一列。我們?nèi)∶麨?????String colum();

經(jīng)過上面分析,我們可以得到這個自定義注解具體了。

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public?@interface?ExcelAnnotation?{

????/**
?????*?導出文件的中文名稱
?????*/
????String?ZHName()?;

????/**
?????*?導出對應的列
?????*?A、B、C...
?????*?@return
?????*/
????String?colum();
????}


Java中注解學習系列教程-4 使用自定義注解實現(xiàn)excel導出

接下來我們創(chuàng)建對象。開始測試:

一:創(chuàng)建POJO對象

創(chuàng)建用戶對象:AnnotationUserPoJo

屬性有:

/**
*注解id
**/
private?Integer?id;
/**
*用戶名
**/
private?String?name;
/**
*性別
**/
private?Integer?Gender;

在需要的字段上使用我們自定義的ExcelAnnotation注解。

具體用法:

/**
?*?主鍵id
?*/
@ExcelAnnotation(ZHName?=?"主鍵ID",?colum?="A"?)
private?Integer?id;

Java中注解學習系列教程-4 使用自定義注解實現(xiàn)excel導出

編寫Excel工具類:

在這里凱哥就不貼出全碼了,因為工具類中代碼太多。只講重要的。代碼會放在git上的。

Java中注解學習系列教程-4 使用自定義注解實現(xiàn)excel導出

我們在解析的時候,先判斷每個自讀是否使用了注解。如使用了注解就進行解析。

三:創(chuàng)建junit測試類:

Java中注解學習系列教程-4 使用自定義注解實現(xiàn)excel導出

執(zhí)行test測試。查看結果。

問題分析:

1:如果是date類型的數(shù)據(jù),怎么格式化?在文章剛開始凱哥貼出的圖中,生日是格式化好的

2:枚舉類型。如性別。在文章剛開始凱哥貼出的圖中,性別還是數(shù)字1.而非男或者女。

以上兩個問題怎么解決呢?

凱哥將在下一篇文章中詳細講解。以及工作中常用到的怎么處理。

聲明:本文由凱哥Java系列教程中Java注解講解第四篇文章。

本文出處:http://www.kaigejava.com/article/detail/442

凱哥博客:www.kaigejava.com

凱哥公眾號:凱哥Java(kaigejava)


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI