• POI3.17操作excel(读)


    public static List<Map<String, Object>> readExcel1(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);
                HSSFWorkbook wb = new HSSFWorkbook(fi);
                HSSFSheet sheet = wb.getSheetAt(sheetnum);                    //sheet 从0开始
                int rowNum = sheet.getLastRowNum() + 1;                    //取得最后一行的行号
                for (int i = startrow; i < rowNum; i++) {                    //行循环开始
                    Map<String, Object> varpd = new HashMap<>();
                    HSSFRow row = sheet.getRow(i);                            //
                    int cellNum = row.getLastCellNum();                    //每行的最后一个单元格位置
                    for (int j = startcol; j < cellNum; j++) {                //列循环开始
                        HSSFCell cell = row.getCell(Short.parseShort(j + ""));
                        String cellValue = null;
                        if (null != cell) {
                            switch (cell.getCellType()) {// 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
                                case 0:
                                    if (HSSFDateUtil.isCellDateFormatted(cell)) {// 判断是否是日期
                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                                        cellValue = sdf.format(HSSFDateUtil.getJavaDate(cell.getNumericCellValue()));
                                        break;
                                    } else {
                                        cellValue = String.valueOf((int) cell.getNumericCellValue());
                                        break;
                                    }
                                case 1:
                                    cellValue = cell.getStringCellValue();
                                    break;
                                case 2:
                                    cellValue = cell.getNumericCellValue() + "";
                                    break;
                                case 3:
                                    cellValue = "";
                                    break;
                                case 4:
                                    cellValue = String.valueOf(cell.getBooleanCellValue());
                                    break;
                                case 5:
                                    cellValue = String.valueOf(cell.getErrorCellValue());
                                    break;
                            }
                        } else {
                            cellValue = "";
                        }
                        varpd.put("var" + j, cellValue);
                    }
                    varList.add(varpd);
                }
            } catch (Exception e) {
                System.out.println(e);
            }
            return varList;
        }
  • 相关阅读:
    网络编程-Python的socket库
    Python -用虚拟环境保存库文件
    Python --文件的读写
    VIM--常用操作
    libpcap -学习1
    Python -装饰器
    C++ 关于map,function的简单应用
    UVAlive 3635 (13.08.23)
    C语言中的整型提升(integral promotion)
    [置顶] 从一位数组中提取最小k个元素
  • 原文地址:https://www.cnblogs.com/chuzijing/p/16377910.html
Copyright © 2020-2023  润新知