首页 > 代码库 > POI基本操作

POI基本操作

1、读取excel文件

InputStream is = new FileInputStream(filesrc);POIFSFileSystem fs = new POIFSFileSystem(is);HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);

2、获取全部行数

int rows = sheet.getLastRowNum();

 3、创建工作簿

Workbook wb = new HSSFWorkbook();//定义一个新的工作簿FileOutputStream fileOut = new FileOutputStream("d:\\poiDemo.xls");wb.write(fileOut);fileOut.close();

4、创建sheet页

Workbook wb = new HSSFWorkbook();//定义一个新的工作簿wb.createSheet("FirstSheet");//创建一个sheet页wb.createSheet("SecondSheet");//创建第二个sheet页FileOutputStream fileOut = new FileOutputStream("d:\\poiSheetDemo.xls");

5、创建单元格

Workbook wb = new HSSFWorkbook();        Sheet sheet = wb.createSheet("firstSheet");        Row row = sheet.createRow(0);//创建一行        Cell cell = row.createCell(0);//创建一个单元格        cell.setCellValue(1);                row.createCell(1).setCellValue(1.2);//创建一个单元格第二列,值是1.2        row.createCell(2).setCellValue("这是一个字符串");//创建一个单元格第三列,值是1.2                                FileOutputStream fileOut = new FileOutputStream("d:\\poiSheet.xls");        wb.write(fileOut);        fileOut.close();

6、遍历工作簿

public static void main(String[] args) throws Exception {        InputStream is = new FileInputStream("d:\\遍历名单.xls");        POIFSFileSystem fs = new POIFSFileSystem(is);        HSSFWorkbook wb = new HSSFWorkbook(fs);        HSSFSheet hssfSheet = wb.getSheetAt(0);        if(hssfSheet==null){            return;        }        //遍历行row        for(int rowNum = 0;rowNum<=hssfSheet.getLastRowNum();rowNum++){            HSSFRow hssfRow = hssfSheet.getRow(rowNum);            if(hssfRow==null){                continue;            }            //遍历裂cell            for(int cellNum = 0;cellNum<=hssfRow.getLastCellNum();cellNum++){                HSSFCell hssfCell = hssfRow.getCell(cellNum);                if(hssfCell==null){                    continue;                }                System.out.print(" "+getValue(hssfCell));            }            System.out.println();        }    }        private static String getValue(HSSFCell hssfCell){        if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){            return String.valueOf(hssfCell.getBooleanCellValue());        }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){            return String.valueOf(hssfCell.getNumericCellValue());        }else{            return String.valueOf(hssfCell.getStringCellValue());        }    }

7、文本提取

InputStream is = new FileInputStream("d:\\遍历名单.xls");POIFSFileSystem fs = new POIFSFileSystem(is);HSSFWorkbook wb = new HSSFWorkbook(fs);    ExcelExtractor excelExtractor = new ExcelExtractor(wb);excelExtractor.setIncludeSheetNames(false);//不需要sheet页的名字System.out.println(excelExtractor.getText());

8、单元格合并

Workbook wb = new HSSFWorkbook();        Sheet sheet = wb.createSheet("sheet1");        Row row = sheet.createRow(1);                Cell cell = row.createCell(1);        cell.setCellValue("单元格合并");                sheet.addMergedRegion(new CellRangeAddress(1,2,1,2));//起始行,结束行,起始列,结束列

9、读取和重写工作簿

InputStream inp = new FileInputStream("d:\\demo13.xls");        POIFSFileSystem fs = new POIFSFileSystem(inp);        Workbook wb = new HSSFWorkbook(fs);        Sheet sheet = wb.getSheetAt(0);//获取第一个sheet        Row row = sheet.getRow(0);        Cell cell =row.getCell(0);        if(cell==null){            cell = row.createCell(3);                    }        cell.setCellType(Cell.CELL_TYPE_STRING);        cell.setCellValue("测试单元格");                        FileOutputStream fileOut = new FileOutputStream("d:\\demo13.xls");        wb.write(fileOut);        fileOut.close();

 

POI基本操作