POIEasyExcel
# POI与EasyExcel - 数据导出excel - 数据导入程序 # POI - 数据加入内存再操作 - 消耗内存 \`\`\`java // 工作簿 2003 65535行 Workbook workbook = new HSSFWorkbook(); // 工作簿 2007 无限制,但耗时较长 Workbook workbook = new XSSFWorkbook(); // 无限制,大量数据速度也快,但会产生临时文件 // 工作表 Sheet sheet = workbook.createSheet("sheet1"); // 行 Row row1 = sheet.createRow(0); // 列 (1,1) Cell cell1 = row1.createCell(0); cell1.setCellValue("1,1"); Workbook workbook = new SXSSFWorkbook(); // 清除临时文件 ((SXSSFWorkbook)workbook).dispose(); \`\`\` 读取 - 注意类型问题,程序中获取时按照类型获取 \`\`\`xml org.apache.poi poi 4.1.0 org.apache.poi poi-ooxml 4.1.0 \`\`\` # EasyExcel - 逐行操作 \`\`\`xml com.alibaba easyexcel 2.2.6 org.projectlombok lombok 1.18.12 \`\`\` \`\`\`java @Data @NoArgsConstructor @AllArgsConstructor public class User { @ExcelProperty("id") private Integer id; @ExcelProperty("用户名") private String name; //@ExcelIgnore 忽略属性 @ExcelProperty("用户密码") private String password; public static List create(){ List list = new ArrayList(); User u = new User(1,"dzf", "123"); User u2 = new User(1,"dzf","123456"); User u3 = new User(2,"gyg","1234"); list.add(u); list.add(u); list.add(u3); return list; } public static class UserListener extends AnalysisEventListener { List list = new ArrayList(); @Override public void invoke(User data, AnalysisContext context) { System.out.println(data); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { System.out.println("读入完成"); } } } \`\`\` \`\`\`java // 写 List list = User.create(); EasyExcel.write("D:/desktop/xxx.xlsx",User.class).sheet("sheetname").doWrite(list); \`\`\` \`\`\`java // 读 EasyExcel.read("D:/desktop/xxx.xlsx",User.class,new User.UserListener()).sheet("sheetname").doRead(); \`\`\` https://alibaba-easyexcel.github.io/index.html