先說導出
java代碼
@SpringBootTest(classes = {ShujiegouApplication.class})
@RunWith(SpringJUnit4ClassRunner.class)
public class EasyPoiExportTest {
@Autowired
private SysColumnService sysColumnService;
@Test
public void test() throws Exception{
List<SysColumn> sysColumnAll = sysColumnService.getSysColumnAll();
//標題 表名 導出類型 HSSF xls XSSF xlsx
ExportParams exportParams = new ExportParams("欄目表","column", ExcelType.XSSF);
//1.導出參數對象 1.普通Java類的類對象(要導出的實體類的類對象) 3.一個集合 查詢全部的用戶信息
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, SysColumn.class,sysColumnAll);
workbook.write(new FileOutputStream(new File("E://easypoi.xlsx")));
}
}
實體類代碼
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "sys_column")
public class SysColumn {
@Id
@Excel(name = "主鍵")
private Integer id;
@Excel(name = "列名")
private String columnName;
@Excel(name = "父id")
private Integer parentId;
@ExcelIgnore //忽略字段(屬性)
private Integer columnRank;
@Excel(name = "跳轉頁面")
private String enName;
}
效果圖
期間出現了一個異常
java.lang.IllegalArgumentException: lastRow < firstRow || lastCol < firstCol
原因是實體類上我沒有加入 Easypoi的相關注解(例如 @Excel等等),加上即可。
再說導入
java代碼
@Test
public void test1(){
//創建導入參數對象
ImportParams importParams = new ImportParams();
//設置標題佔行數
importParams.setTitleRows(1);
//設置表頭佔行數
importParams.setHeadRows(1);
//參數:1,讀取文件 2,對應的實體類 3,導入參數對象
List<SysColumn> sysColumns = ExcelImportUtil.importExcel(new File("E://easypoi.xlsx"), SysColumn.class, importParams);
for (SysColumn sysColumn:sysColumns) {
System.out.println(sysColumn);
}
}
控制檯輸出來的結果
既然我們已經獲取到了數據,接下來我們只要往數據庫添加數據即可。
相較於之前寫的poi是不是簡單了很多呢?哈哈
這輩子堅持與不堅持都不可怕,怕的是獨自走在堅持的道路上!