亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

poi excel讀取 兼容xlsm,xlsx

標簽:
Java

需要jar包:poi-3.7-20101029.jar
poi-examples-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
poi-scratchpad-3.7-20101029.jar
xmlbeans-2.3.0.jar

/**

  • @param filepath //文件路径
  • @param filename //文件名
  • @param startrow //开始行号
  • @param startcol //开始列号
  • @param sheetnum //sheet
  • @return list
    */
    public static List<Object> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
    List<Object> varList = new ArrayList<Object>();

    try {
        File target = new File(filepath, filename);
        FileInputStream fi = new FileInputStream(target);
        Workbook wb = null; 
        try{
             wb = new XSSFWorkbook(fi);
    
        }
         catch (Exception ex) { 
             wb = new HSSFWorkbook(new FileInputStream(target));
            } 
        Sheet sheet = wb.getSheetAt(sheetnum);                  //sheet 从0开始
    
        FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator(); 
        int rowNum = sheet.getLastRowNum() + 1;                     //取得最后一行的行号
    
        for (int i = startrow; i < rowNum; i++) {                   //行循环开始
    
            PageData varpd = new PageData();
            Row row = sheet.getRow(i);                          //行
            int cellNum = row.getLastCellNum();                     //每行的最后一个单元格位置
    
            for (int j = startcol; j < cellNum; j++) {              //列循环开始
    
                DecimalFormat df = new DecimalFormat("0.000000");  
                Cell cell1 = row.getCell(Short.parseShort(j + ""));
                CellValue cell = evaluator.evaluate(cell1);
                String cellValue = null;
                if (null != cell) {
                    switch (cell.getCellType()) {                   // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
                    case 0:
                        cellValue = df.format(cell.getNumberValue());
                        break;
                    case 1:
                        cellValue = cell.getStringValue();
                        break;
                    case 2:
                        cellValue = cell.getNumberValue() + "";
                        // cellValue = String.valueOf(cell.getDateCellValue());
                        break;
                    case 3:
                        cellValue = "";
                        break;
                    case 4:
                        cellValue = String.valueOf(cell.getBooleanValue());
                        break;
                    case 5:
                        cellValue = String.valueOf(cell.getErrorValue());
                        break;
                    }
                } else {
                    cellValue = "";
                }
    
                varpd.put("var"+j, cellValue);
    
            }
            varList.add(varpd);
        }
    
    } catch (Exception e) {
        System.out.println(e);
    }
    
    return varList;

    }

點擊查看更多內容
3人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
3
獲贊與收藏
23

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消