EXCEl中关于Cell中的各种值的类型判断

2023-11-12


    private static String getCellValue(XSSFCell cell)
    {
//        DecimalFormat df = new DecimalFormat("#.#");
        String cellValue = null;
        if (cell == null) return null;
        switch (cell.getCellType())
        {
            case HSSFCell.CELL_TYPE_NUMERIC :
                if (HSSFDateUtil.isCellDateFormatted(cell))
                {
//                    需要对日期这一列进行设置样式,否则无法识别是日期类型还是数值类型
//                    默认不支持中文日期类型,需要设置成纯英语日期类型,不要包含年月日等汉字
//                    最好是使用这种格式 2019/10/10 0:00
                    SimpleDateFormat sdf = new SimpleDateFormat(
                            "yyyy-MM-dd HH:mm:ss");
                    cellValue = sdf.format(HSSFDateUtil.getJavaDate(cell
                            .getNumericCellValue()));
                    break;
                }
//                cellValue = df.format(cell.getNumericCellValue());
                String v=String.format("%.4f",cell.getNumericCellValue());      //默认的整数后边是一个小数点,和一个零
                cellValue=(v).replaceAll("\\.0*$","");//整数作为浮点数格式化以后,删除结尾的点零
                break;
            case HSSFCell.CELL_TYPE_STRING :
                cellValue = String.valueOf(cell.getStringCellValue());
                break;
            case HSSFCell.CELL_TYPE_FORMULA ://XSSFCell.getCTCell()
                cellValue = cell.getCTCell().getV();//.getCachedFormulaResultType();//String.valueOf(cell..getCellFormula());
                break;
            case HSSFCell.CELL_TYPE_BLANK :
                cellValue = null;
                break;
            case HSSFCell.CELL_TYPE_BOOLEAN :
                cellValue = String.valueOf(cell.getBooleanCellValue());
                break;
            case HSSFCell.CELL_TYPE_ERROR :
                cellValue = String.valueOf(cell.getErrorCellValue());
                break;
        }
        if (cellValue != null && cellValue.trim().length() <= 0)
        {
            cellValue = null;
        }
        return cellValue;
    }

switch (cell.getCellType()){
    case Cell.CELL_TYPE_NUMERIC: //数字
        cellValue = stringDateProcess(cell);
        break;
    case Cell.CELL_TYPE_STRING: //字符串
        cellValue = String.valueOf(cell.getStringCellValue());
        break;
    case Cell.CELL_TYPE_BOOLEAN: //Boolean
        cellValue = String.valueOf(cell.getBooleanCellValue());
        break;
    case Cell.CELL_TYPE_FORMULA: //公式
        cellValue = String.valueOf(cell.getCellFormula());
        break;
    case Cell.CELL_TYPE_BLANK: //空值
        cellValue = "";
        break;
    case Cell.CELL_TYPE_ERROR: //故障
        cellValue = "非法字符";
        break;
    default:
        cellValue = "未知类型";
        break;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EXCEl中关于Cell中的各种值的类型判断 的相关文章

随机推荐

  • arma3服务器滚动信息,【图片】武装突袭3服∷务器状态信息查询 - 接口/模块/JАVa-机器人_武装突袭3吧_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 然后是java如何使用接口 以下文档仅供参考 已字符防和谐处理 GetXMLtoServerPlayer GSP new GetXMLtoServerPlayer 得到玩家信息 String S
  • python format 冒号_python之格式化输出

    字符串格式化有两种方式 和format 先介绍下 号的方法 s的语法结构 叫做占位符 就是先占一个位置 然后我们用真实的要显示的数据替换占位符即可 最简单的用法就是下面的方式 其实 s还有其他的功能 s 我的名字是 s 我的年龄是 d al
  • xss-labs通关参考(7-10)

    7 第七关 先提交 Oonn gt 查看源代码 过滤了script 和On 双引号闭合 所以payload oONnmouseover alert xss 8 第八关 先提交 Oonn gt 查看源代码 发现 script和on中间都被加上
  • [leetcode] 437. Path Sum III 解题报告

    题目链接 https leetcode com problems path sum iii You are given a binary tree in which each node contains an integer value F
  • 传输线理论--学习笔记

    1 1传输线方程及其通解 下图为双导线的集总电路模型 在一个微分段内 双导线可以等效集总电路模型 的模型怎么来的 gt 双导线的射频效应 导体损耗 趋肤效应 单位长度串联电阻R0 介质损耗 两根导线之间有介质 如空气 单位长度并联电导G0
  • 第一届排序算法性能大赛(上万字激烈解说)

    写在前面 最近学到了一些重要的排序 并且简单地测了一下各种排序算法在不同的算法实现 优化以及递归和非递归下的运行速度 本文一共提及了以下几种常用到的排序 其他排序使用场景较少 便没有提及 并且本文的全部代码实现均为通俗易懂的c语言 如果觉得
  • Flink Table API & SQL - 概念和通用API

    Table API 和 SQL 集成在一个 API 中 这个 API 用作查询 输入和输出的表 本文档展示了带有 Table API 和 SQL 查询的程序的公共结构 如何注册表 如何查询表以及如何写入表 目录 两个Planner之间的主要
  • shell运行class文件 导入class依赖的jar包

    shell脚本运行class文件导入class依赖的jar包 如下图 我要用shell运行TestFinish类 类中引入了rt jar包 在shell中怎么引入rt jar包呢 很简单只要三步就可以运行了 1 javac cp rt ja
  • win10无法登陆到你的账户解决方法

    进入win10系统登录的时候很多用户遇到了win10无法登陆到你的账户情况 这种问题都会需要来进行重新设置 来看看怎么解决这个无法登录问题吧 更多重装系统教程尽在小白系统重装官网 1 首先我们需要进入win10系统安全模式 安全模式进入方法
  • 【IIOT】欧姆龙PLC数采之NX/NJ系列

    IIOT 欧姆龙PLC数采之NX NJ系列 前言 一 车间级数采系统架构 二 欧姆龙PLC介绍 三 NX NJ系列产品说明 3 1 CPU规格 3 2 内部寄存器 3 3 支持协议 四 数采方案 4 1 选择协议 4 2 硬件架构 1 确认
  • 防页面url缓存

    在开发中 发现当我们访问一个地址之后 包括ajax访问 打开检测会发现第二次请求没有去服务器端 直接走的浏览器自身的缓存 如何避免这样的情况呢 通过在地址栏后拼一串随机数 即可 例如 XXXX t 生成的随机数 随机数可以跟时间戳 或者随机
  • Vue+el-table+sortable踩坑

    1 拖拽后 同页面切换tab 表格数据更新 表头显示顺序有误 拖拽 1 2 3 2 1 3 更新后为 5 4 6 应为 4 5 6 原代码
  • Kendo UI开发教程(26): 单页面应用(四) Layout

    Layout继承自View 可以用来包含其它的View或是Layout 下面例子使用Layout来显示一个View 1
  • matplotlib绘制直方图

    统计250部电影的时长分布状态 from matplotlib import pyplot as plt from matplotlib import font manager time 131 98 125 131 124 139 131
  • MySQL之 表

    表是关于特定实体的数据集合 这也是关系型数据库模型的核心 1索引组织表 在InnoDB存储引擎中 每张表都有一个主键 Primary Key 如果创建表时没有显示定义主键 则会按照如下方式创建主键 存在非空的唯一索引 Unique NOT
  • html回到顶部的特效

    html代码 div class istop a href self 返回顶部 a div js代码 function istop click function html body animate scrollTop 0 500
  • 通过GPIO探究STM32F10x的寄存器与函数_2021-04-24

    通过GPIO探究STM32F10x的寄存器与函数 将地址用标识符定义出来可以增加可读性 定义引脚 define GPIO PIN 0 uint16 t 0x0001 define GPIO PIN 1 uint16 t 0x0002 def
  • ubuntu关于openssl中缺少crypto库

    官网下载openssl库 https www openssl org source old 1使用tar命令解压至指定目录 sudo tar xzvf openssl 1 1 0e tar gz C filepath 文件路径 2进入解压后
  • 我的2021秋招记录

    普通一本 本硕 嵌入式软件开发岗 收到小米 联发科 浙江大华 汇川技术 英威腾 上能电气 富士康 格力offer 最高28w 最低减半 以下开始讲述一些我找工作的经验 希望对大家有帮助 觉得有帮助的 记得点个赞关注走一波 谢谢大家 一 简历
  • EXCEl中关于Cell中的各种值的类型判断

    private static String getCellValue XSSFCell cell DecimalFormat df new DecimalFormat String cellValue null if cell null r