官網:EasyExcel
其他簡單Excel框架:ExcelUtil
1、pom依賴
<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</version> </dependency>
2、實體類
@Data @NoArgsConstructor @AllArgsConstructor public class User { @ExcelProperty(value = "姓名") private String userName; @NumberFormat("#.##%") @ExcelProperty(value = "體脂率") private double fat; @ExcelProperty(value = "編寫日期") private String birthday; }
3、導出數據
@GetMapping(value = "/write") public String write(){ String url = "/Users/mac/Desktop/76521.xlsx"; List<User> list = Arrays.asList( new User("劉飛",0.2512,"2002-01-12"), new User("張羽",0.2345,"2002-06-22"), new User("關備",0.1812,"2002-04-03") ); EasyExcel.write(url,User.class).sheet("Sheet").doWrite(list); return "OK"; }
測試如下:
4、導入
public class DataListener extends AnalysisEventListener<User> { List<User> list = new ArrayList<>(); /** * 這個每一條數據解析都會來調用 * @param user excel對應一個對象 * @param analysisContext 上下文 */ @Override public void invoke(User user, AnalysisContext analysisContext) { list.add(user); } /** * 所有數據解析完成了 最終會調用 * @param analysisContext 上下文 */ @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { System.out.println("所有數據加載完畢,在裏面將數據存儲到數據庫"); System.out.println(JSON.toJSON(list)); } }
接口:
@GetMapping(value = "/read") public String read(){ String url = "/Users/mac/Desktop/76521.xlsx"; EasyExcel.read(url,User.class, new DataListener()).sheet().doRead(); return "OK"; }
測試結果:
測試OK。