- 数据的导出实现
- 数据导出模板 放在resource/export/blog_vo.xlsx
-
XLS Area定义标记
XLS Area 是JxlsPlus中的一个重要概念,它代表excel模板中需要被解析的矩形区域,由A1到最后一个单元格表示,有利于加快解析速度。XLS Area 使用excel注释标注表示,它需要被定义在excel 模板的第一个单元格(A1):
-
- 导入jxls的maven坐标
<dependency> <groupId>org.jxls</groupId> <artifactId>jxls</artifactId> <version>2.10.0</version> </dependency> //使用模板一定要导入poi包 <dependency> <groupId>org.jxls</groupId> <artifactId>jxls-poi</artifactId> <version>2.10.0</version> </dependency> - 编写代码
@Test public void exportExecl() throws IOException { //文件导出路径 及 文件输出流 FileOutputStream fileOutputStream = new FileOutputStream("C:\Users\DBC20220605\Desktop\blog导出.xlsx"); //需要导出的数据 List<BlogVO> blogVo = blogRepository.findBlogVo(); //获取模板输入流 InputStream templateIs = this.getClass().getClassLoader().getResourceAsStream("export/blog_vo.xlsx"); //创建内容主体 Context context=new Context(); //map映射模板注释里面名字 context.putVar("map",blogVo); //导出 JxlsHelper.getInstance().processTemplate(templateIs,fileOutputStream,context); }
- 数据导出模板 放在resource/export/blog_vo.xlsx
- 数据的导入实现
-
需要导入的数据如下
-
maven仓库地址
<!--excel数据导入--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.2</version> </dependency> -
编写代码
@Test public void readerExecl() throws FileNotFoundException { List<BlogVO> list = new ArrayList<BlogVO>(); //如果是xls,使用HSSFWorkbook;如果是xlsx,使用XSSFWorkbook XSSFWorkbook workbook = null; //文件导入流 try { // 读取Excel文件 InputStream inputStream = new FileInputStream("C:\Users\DBC20220605\Desktop\blog导出.xlsx"); workbook = new XSSFWorkbook(inputStream); inputStream.close(); } catch (Exception e) { e.printStackTrace(); } // 循环工作表 就一个工作表 XSSFSheet sheetAt = workbook.getSheetAt(0); //遍历行 从二行开始,表头不需要 for (int rowNum=1;rowNum<=sheetAt.getLastRowNum();rowNum++){ XSSFRow row = sheetAt.getRow(rowNum); if(Objects.isNull(row)){ continue; } //获取内容 BlogVO blogVO = new BlogVO(); XSSFCell cell = row.getCell(0); //XSSFCell对象可以返回对应的类型值 blogVO.setUserId(cell.getStringCellValue()); cell = row.getCell(1); blogVO.setTitle(cell.getStringCellValue()); cell = row.getCell(2); blogVO.setAuthor(cell.getStringCellValue()); list.add(blogVO); } list.forEach(System.out::println); } -
成功打印
-