通过Poi操作Excel十分方便,将一个Excel抽象为一个Workbook,一个表单页抽象为Sheet,表单中的一行抽象为Row,一行中的一个单元格可以抽象为Cell。HSSF对应的是97-03格式(.xls),XSSF对应的是07格式的(.xlsx)。
Workbook的获取有以下几种方式:
1.可以通过WorkbookFactory,工厂方法
Workbook wb=WorkbookFactory.create(new FileInputStream(file));//可以读取xls格式或xlsx格式。
使用此种方式需注意close();问题,建议使用显性创建。
2.直接通过HSSFWorkbook的构造方法
Workbook wb=new HSSFWorkbook();//生成一个空的Excel文件
Workbook wb=new HSSFWorkbook(new FileInputStream(file));//只能读取xls后缀的Excel文件.
3.直接通过XSSFWorkbook的构造方法
Workbook wb=new XSSFWorkbook();//生成一个空的Excel文件
Workbook wb=new XSSFWorkbook(new FileInputStream(file));//只能读取xlsx后缀的Excel文件
Sheet可由Workbook创建
Sheet s=wb.createSheet(sheet);//创建一个名为sheet的表单
Row由Sheet创建
Row r=s.createRow(row);//新创建一行,行号为row+1
Cell有Row创建
Cell c=r.createCell(col);//创建一个单元格,列号为col+1
最后就可以通过c.setCellValue(value)向单元格填充内容即可
以上部分内容节选于https://www.cnblogs.com/likui-bookHouse/articles/7490151.html
验证Excel数据:
1 try{ 2 FileInputStream finceshi = (FileInputStream) file.getInputStream(); 3 HSSFWorkbook work = new HSSFWorkbook(finceshi); 4 finceshi.close(); 5 HSSFSheet sheet = work.getSheetAt(0); 6 int row = sheet.getLastRowNum(); 7 for (int rowIndex = 3; rowIndex <= row; rowIndex++) { 8 //获取第0列数据 9 HSSFCell cell = sheet.getRow(rowIndex).getCell(0); 10 String str = cell.getStringCellValue(); 11 if (str.length() > 15) { 12 System.out.println(str + "=====当前第"+ rowIndex +"行=====这个数值大于15"); 13 return j; 14 } 15 } 16 }catch (Exception e){}