java使用POI操作Excel,以及各种格式内容处理,科学计数法,会计格式

  • Excel主要分为2003和2010版本。分别是HssFWorkBook和XssFWorkBook。
      InputStream is  = new FileInputStream("C:/Users/Administrator/Desktop/test.xlsx");
        XSSFWorkbook xs = new XSSFWorkbook(is);
        XSSFSheet sheet = xs.getSheetAt(0);
        System.out.println(sheet.getLastRowNum());
        for (Row row : sheet) {
            for (int i = 0; i < row.getLastCellNum(); i++) {

                System.out.println(ExcelUtil.getCellValue(row.getCell(i)));

            }

        }
  • XssFSheet获得第几张表。下标从零开始,不一定和从Excel文件里看到的一样,因为有些Sheet文件是隐藏的,仍然占用着下标。

                                        sheet1

                                        sheet2

  • getLastRowNum()方法获得有效区域行数。row.getCell(i)获得单元格。
我自己封装了获得单元格内容的方法ExcelUtil.getCellValue(Cell cell);
    /**
     * <p>得到Excel单元格的内容,支持Boolean、Number、String、公式</p>
     * @author zhanglixuan
     * 
     */
    public static String getCellValue(Cell cell) {
           if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
                return String.valueOf(cell.getBooleanCellValue()).trim();
            } else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
                DecimalFormat df = new DecimalFormat("0");  
                String cellValue = df.format(cell.getNumericCellValue());  
                return cellValue;
            } else if (cell.getCellType() == cell.CELL_TYPE_FORMULA) {
                return String.valueOf(cell.getCellFormula()).trim();
            } else {
                return String.valueOf(cell.getStringCellValue()).trim();
            }
        
        
    }
 
原文地址:https://www.cnblogs.com/zhanglixuan/p/7279197.html