简介:
Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。
写:
pom.xml文件引入poi的依赖;依赖可能有问题,可以自行www.baidu.com
<!-- poi的依赖,完成excel文件的读写 --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.2</version> </dependency>
代码实现:这里使用的测试方法来实现测试
@Test void contextLoads() { /* 1.创建一个工作蒲对象WorkBook 有两个实现类:HSSFWorkbook(03版excel,65536行数据)和XSSFWorkbook(07版excel) */ Workbook workbook = new HSSFWorkbook(); /* 2.创建一个工作表对象Sheet 调用workbook.createSheet()来创建工作表,可以对该方法给出参数,"工作表的名称" */ Sheet sheet = workbook.createSheet("test"); /* 3.创建行对象Row 调用sheet.createRow(0)来创建,从0开始创建表中的第一行 */ Row row = sheet.createRow(0); /* 4.创建列(单元格)对象Cell 调用row.createCell(0)来创建,从0开始创建表中的第一列 */ Cell cell = row.createCell(0); //5.给生成的单元格填入数据 cell.setCellValue("给坐标0,0写入的数据"); FileOutputStream fileOutputStream = null; try { //6.创建流对象,准备写入文件 fileOutputStream = new FileOutputStream("路径,,03版以.xls结尾,07版以.xlsx结尾"); //7.写入文件 workbook.write(fileOutputStream); } catch (IOException e) { e.printStackTrace(); } finally { //8.关闭流对象 try { if (!ObjectUtils.isEmpty(fileOutputStream)) { fileOutputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } }
读:
代码实现:
@Test void contextLoadssx() throws IOException { /* 1.获取流对象,流对象读取文件 */ FileInputStream fileInputStream=new FileInputStream("文件路径"); /* 2.创建一个工作蒲对象WorkBook 有两个实现类:HSSFWorkbook(03版excel)和XSSFWorkbook(07版excel) */ Workbook workbook = new HSSFWorkbook(fileInputStream); /* 3.获取一个工作表对象Sheet 调用workbook.getSheet()来创建工作表,可以对该方法给出参数,"工作表的名称" */ Sheet sheet = workbook.getSheet("test"); /* 获取当前表共有多少行数据,可以对该参数进行遍历,循环读取所有行 */ int num=sheet.getPhysicalNumberOfRows(); /* 4.获取行对象 调用sheet.getRow(0)来获取行对象,给出参数为第几行 */ Row row=sheet.getRow(0); /* 获取当行共有多少列,可以对该参数进行for循环,达到循环读取行的所有数据 */ int count = row.getPhysicalNumberOfCells(); /* 5.获取列对象 调用row.getCell(0)来获取列对象,给出参数为第几列 */ Cell cell=row.getCell(0); /* 获取当前列(单元格)的数据类型,再通过判断,与CellType枚举类型中的数据进行比对,达到调用不同的读取方法 _NONE(-1), NUMERIC(0), STRING(1), FORMULA(2), BLANK(3), BOOLEAN(4), ERROR(5); */ CellType cellType = cell.getCellType(); /* 6.获取数据 调用cell.getStringCellValue()获取列(单元格)中的数据 读取值需要调用对应的读取方法,数字有专门的数字读取方法 */ String value=cell.getStringCellValue(); /* 7.关闭流 */ fileInputStream.close(); }
EasyExcel
pom文件
<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>3.1.1</version> </dependency>
示例链接:
https://easyexcel.opensource.alibaba.com/docs/current/quickstart/fill
GitHub链接:
https://github.com/alibaba/easyexcel