zoukankan      html  css  js  c++  java
  • 导入

    https://blog.csdn.net/qq_32063079/article/details/85341586

    获取逻辑行
    Workbook wb = null;
    Sheet sheet = wb.getSheetAt(0);
    Row row = sheet.getRow(r);
    判断隐藏行和隐藏列
    row.getZeroHeight() //判断隐藏行
    sheet.isColumnHidden(j) //判断隐藏列
    遍历单元格
    //遍历行
    for (int r = 0; r <= sheet.getPhysicalNumberOfRows(); r++) {
    Row row = sheet.getRow(r);
    if(row.getZeroHeight()){
    System.out.println("第"+(r + 1)+"行隐藏行");
    continue;
    }
    //遍历列
    for (int j = 0; j < row.getPhysicalNumberOfCells(); j++) {
    if (sheet.isColumnHidden(j)){
    System.out.println("第" + j + "列隐藏列");
    continue;
    }
    //获取单元格的值
    String value = checkValue(r,j,row);
    }
    }
    获取单元格值-数据处理util
    public static String checkValue(int r, int j, Row row) {
    Cell cell = row.getCell(j);
    String value = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    if(cell == null){
    cell = row.createCell(0);
    cell.setCellValue("");
    }
    try {
    switch (cell.getCellType()){
    case Cell.CELL_TYPE_STRING:
    value = cell.getStringCellValue().trim();
    break;
    case Cell.CELL_TYPE_BOOLEAN:
    value = String.valueOf(cell.getBooleanCellValue());
    break;
    case Cell.CELL_TYPE_FORMULA:
    //处理数字和公式
    value = String.valueOf(Double.valueOf(cell.getNumericCellValue()));
    value = value.replaceAll("0+?$", "");
    value = value.replaceAll("[.]$", "");
    break;
    case Cell.CELL_TYPE_NUMERIC:
    //处理日期格式的Excel数据
    if (HSSFDateUtil.isCellDateFormatted(cell)) {
    Date date = cell.getDateCellValue();
    value = sdf.format(date);
    } else {
    //处理科学计数法
    double temp = cell.getNumericCellValue();
    DecimalFormat df = new DecimalFormat("0");
    value = df.format(temp);
    }
    break;
    default:
    return "";
    }
    } catch (Exception e) {
    e.printStackTrace();
    throw new RuntimeException("导入失败!第"+(i + 1)+"行第"+(j + 1)+"列,格式有误 ");
    }
    return value;
    }
    拓展:

    获取单元格格式和对应的值获取
    单元格类型 数值类型和java类型 取值(Cell.getCellType())
    文本 1 / CELL_TYPE_STRING cell.getStringCellValue()
    公式 2 / CELL_TYPE_FORMULA cell.getNumericCellValue())
    数值 0 / CELL_TYPE_NUMERIC cell.getNumericCellValue()
    布尔 4 / CELL_TYPE_BOOLEAN cell.getBooleanCellValue()
    日期 0 / CELL_TYPE_NUMERIC cell.getDateCellValue()
    异常 5 / CELL_TYPE_ERROR cell.getErrorCellValue()

    原文:https://blog.csdn.net/qq_32063079/article/details/85341586

  • 相关阅读:
    重定向URL
    【有意思的BUG】分享按钮 分享功能
    【有意思的BUG】浏览器的Title和Icon
    【有意思的BUG】需要停止的进程
    【NO.8】jmeter-场景-上传文件-send-a-file
    nmon-监控测试服务器
    SecureCRT-转换密钥-Xshell-配置服务-使用xshell登录远程linux服务器
    <转>【读fastclick源码有感】彻底解决tap“点透”,提升移动端点击响应速度
    javascript判断鼠标按键和键盘按键的方法
    javascript 中几种实用的跨域方法原理详解(转)
  • 原文地址:https://www.cnblogs.com/sanhao/p/11262397.html
Copyright © 2011-2022 走看看