@ExcelIgnoreUnannotated
?是?EasyExcel?框架中的一個注解,用于控制 Excel 導入/導出時對實體類字段的處理方式。它的作用如下:
核心功能
忽略未標注?@ExcelProperty
?的字段
-
當添加?
@ExcelIgnoreUnannotated
?到類上時,EasyExcel 會?跳過所有未顯式標注?@ExcelProperty
?的字段,僅處理被?@ExcelProperty
?明確標記的字段。 -
如果沒有此注解,EasyExcel 默認會嘗試處理實體類中的所有字段(包括未標注的字段)。
使用場景
-
精確控制導出的字段
只導出標記了?@ExcelProperty
?的字段,忽略其他字段(即使它們是?public
?或有無參 getter 方法)。 -
避免意外數據泄露
防止因未顯式忽略敏感字段而導致數據被意外導出。 -
提升性能
減少反射掃描的字段數量,加快導入/導出速度。
代碼示例
@ExcelIgnoreUnannotated // 僅處理帶 @ExcelProperty 的字段
public class User {@ExcelProperty("姓名")private String name;@ExcelProperty("年齡")private Integer age;private String password; // 不會被導出/導入
}
對比默認行為
行為 | 無?@ExcelIgnoreUnannotated | 有?@ExcelIgnoreUnannotated |
---|---|---|
未標注?@ExcelProperty ?的字段 | 會被處理(默認按字段名匹配 Excel 列) | 被忽略 |
需要導出的字段 | 必須顯式標注?@ExcelIgnore ?來忽略 | 只需標注?@ExcelProperty ?明確指定 |
注意事項
-
與?
@ExcelProperty
?配合使用
如果類上添加了?@ExcelIgnoreUnannotated
,則必須通過?@ExcelProperty
?明確指定需要處理的字段,否則這些字段會被完全忽略。 -
優先級高于其他注解
即使字段有其他注解(如?@ColumnWidth
),只要沒有?@ExcelProperty
,依然會被忽略。 -
適用于復雜對象
對于嵌套對象,該注解僅作用于當前類的字段,不會影響嵌套類自身的注解規則。
常見問題
Q:如果忘記加?@ExcelProperty
?會怎樣?
A:字段會被完全忽略,可能導致導出數據缺失或導入時字段為?null
。
Q:如何導出所有字段(恢復默認行為)?
A:直接移除?@ExcelIgnoreUnannotated
?注解即可。
通過使用?@ExcelIgnoreUnannotated
,可以更嚴格地控制 Excel 導入/導出的字段范圍,避免因遺漏注解而導致的數據問題。
?