zoukankan      html  css  js  c++  java
  • java poi 读取 Excel xlsx和xls文件

    private static Map<String,Object> readExcel() {
    String filename = "B:\exceltest\template.xlsx";
    Map<String, Object> map=new HashMap<String, Object>();
    FileInputStream fis = null;
    try {
    fis = new FileInputStream(filename);
    } catch (FileNotFoundException e1) {
    e1.printStackTrace();
    }
    // 读取Excel
    Workbook wb = null;
    try {
    String[] fileStr=filename.split("\.");
    if (fileStr[1].equals("xlsx")) {
    wb = new XSSFWorkbook(fis);
    } else if(fileStr[1].equals("xls")){
    wb = new HSSFWorkbook(fis);
    }else {
    throw new Exception("不是excel文件!");
    }

    // 使用wb。getNumberOfSheets获得sheet数目。。
    // 获取sheet数目
    Sheet sheet = wb.getSheetAt(0);
    Row row = null;
    int lastRowNum = sheet.getLastRowNum();
    // 循环读取
    StringBuilder sb=new StringBuilder("");
    for (int i = 0; i <= lastRowNum; i++) {

    row = sheet.getRow(i);
    if (row != null) {
    if(i==0) {
    String value=getCellValue(row.getCell(0));
    map.put("tableName", value.substring(value.indexOf(":")+1));
    }else if(i==1) {
    String value=getCellValue(row.getCell(0));
    map.put("buttonStyle", value.substring(value.indexOf(":")+1));
    }else if(i==2){
    String value=getCellValue(row.getCell(0));
    map.put("i18nPrefix", value.substring(value.indexOf(":")+1));
    }else {
    if(i==3) continue;
    int j;
    // 获取每一列的值
    for (j = 0; j < row.getLastCellNum(); j++) {
    Cell cell = row.getCell(j);
    String value=getCellValue(cell);
    if(value.equals(" ")&&j==0) {
    break;
    }
    sb.append(value).append("|");
    }
    if(j==0) break;
    sb.append(" ");
    }
    }
    }

    sb.setLength(sb.length()-1);
    map.put("properties", sb.toString());
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    wb.close();
    fis.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    return map;
    }

    private static String getCellValue(Cell cell) {
    Object result = "";
    if (cell != null) {
    switch (cell.getCellTypeEnum()) {
    case STRING:
    result = cell.getStringCellValue();
    break;
    case NUMERIC:
    result = cell.getNumericCellValue();
    break;
    case BOOLEAN:
    result = cell.getBooleanCellValue();
    break;
    case FORMULA:
    result = cell.getCellFormula();
    break;
    case ERROR:
    result = cell.getErrorCellValue();
    break;
    case BLANK:
    result = " ";
    break;
    default:
    break;
    }
    }
    return result.toString();
    }

    PS:使用的maven

    poi jar包:

    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
    </dependency>

  • 相关阅读:
    Linux 使用 github 常用命令
    配置使用 git 秘钥连接 GitHub
    Python 使用 face_recognition 人脸识别
    face_recognition 基础接口
    pycharm 安装激活操作
    Python 人工智能之人脸识别 face_recognition 模块安装
    Linux pip 命令无法使用问题
    vue 起步
    vue.JS 介绍
    AngularJS 简介
  • 原文地址:https://www.cnblogs.com/yuezeyuan/p/8036185.html
Copyright © 2011-2022 走看看