一.入门案例
向excel文件中写入并读出
package com.sky.test;import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import java.io.*;//@SpringBootTest
public class POITest {// 对Excel表进行操作 使用POITest创建对象时是在内存中,而不是在磁盘public static void write() throws Exception {XSSFWorkbook excel = new XSSFWorkbook();XSSFSheet sheet = excel.createSheet("info"); // 创建一个sheet 指定sheet信息XSSFRow row = sheet.createRow(1); // 创建一行 POI操作excel表时索引是从0开始的XSSFCell cell = row.createCell(1);// 指定列,创建一个单元格cell.setCellValue("姓名"); // 设定单元格的值cell = row.createCell(2);// 指定列,创建一个单元格cell.setCellValue("城市"); // 设定单元格的值// 创建一个新行row = sheet.createRow(2);cell = row.createCell(1);cell.setCellValue("张三");cell = row.createCell(2);cell.setCellValue("北京");// 创建一个新行row = sheet.createRow(3);cell = row.createCell(1);cell.setCellValue("李斯");cell = row.createCell(2);cell.setCellValue("南京");// 通过输出流将内存中的Excel文件写入磁盘FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\info.xlsx"));excel.write(fileOutputStream); // XSSFWorkbook调用write方法将输出流写出// 关闭资源fileOutputStream.close();excel.close();}// 对Excel表进行操作 读取excel表中的内容到控制台public static void read() throws Exception {InputStream inputStream = new FileInputStream(new File("D:\\info.xlsx"));// 读取磁盘上已经存在的excel文件XSSFWorkbook excel = new XSSFWorkbook(inputStream);XSSFSheet sheet = excel.getSheet("info");// 获取表中有数据的最后一行 0开始int lastRowNum = sheet.getLastRowNum();for (int i = 1; i <= lastRowNum; i++) {XSSFRow row = sheet.getRow(i); // 获得每一行的行对象String cellValue1 = row.getCell(1).getStringCellValue();String cellValue2 = row.getCell(2).getStringCellValue();System.out.println(cellValue1 + " " + cellValue2);}// 关闭资源excel.close();inputStream.close();}public static void main(String[] args) throws Exception{
// write();read();}
}