poi cell转成对应的字符_cell.getnumericcellvalue() 怎么转换为string-程序员宅基地

技术标签: 随手记  

package utils;

import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.DateUtil;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;


public class ExcelCellUtils {


    private static Map<Class<?>, CellType[]> validateMap = new HashMap<>();

    static {
        validateMap.put(String[].class, new CellType[]{CellType.STRING});
        validateMap.put(Double[].class, new CellType[]{CellType.NUMERIC});
        validateMap.put(String.class, new CellType[]{CellType.STRING});
        validateMap.put(Double.class, new CellType[]{CellType.NUMERIC});
        validateMap.put(Date.class, new CellType[]{CellType.NUMERIC, CellType.STRING});
        validateMap.put(Integer.class, new CellType[]{CellType.NUMERIC});
        validateMap.put(Float.class, new CellType[]{CellType.NUMERIC});
        validateMap.put(Long.class, new CellType[]{CellType.NUMERIC});
        validateMap.put(Boolean.class, new CellType[]{CellType.BOOLEAN});
    }

    /**
     * 获取cell类型的文字描述
     *
     * @param cellType <pre>
     *                 CellType.BLANK
     *                 CellType.BOOLEAN
     *                 CellType.ERROR
     *                 CellType.FORMULA
     *                 CellType.NUMERIC
     *                 CellType.STRING
     *                 </pre>
     * @return
     */
    private static String getCellTypeByInt(CellType cellType) {
        if(cellType == CellType.BLANK) {
            return "Null type";
        } else if(cellType == CellType.BOOLEAN) {
            return "Boolean type";
        } else if(cellType == CellType.ERROR) {
            return "Error type";
        } else if(cellType == CellType.FORMULA) {
            return "Formula type";
        } else if(cellType == CellType.NUMERIC) {
            return "Numeric type";
        } else if(cellType == CellType.STRING) {
            return "String type";
        } else {
            return "Unknown type";
        }
    }

    /**
     * 获取单元格值
     *
     * @param cell
     * @return
     */
    public static Object getCellValue(Cell cell) {
        if (cell == null
                || (cell.getCellTypeEnum() == CellType.STRING && StringUtils.isBlank(cell
                .getStringCellValue()))) {
            return null;
        }
        CellType cellType = cell.getCellTypeEnum();
        if(cellType == CellType.BLANK) {
            return null;
        } else if(cellType == CellType.BOOLEAN) {
            return cell.getBooleanCellValue();
        } else if(cellType == CellType.ERROR) {
            return cell.getErrorCellValue();
        } else if(cellType == CellType.FORMULA) {
            try {
                if (HSSFDateUtil.isCellDateFormatted(cell)) {
                    return cell.getDateCellValue();
                } else {
                    return cell.getNumericCellValue();
                }
            } catch (IllegalStateException e) {
                return cell.getRichStringCellValue();
            }
        }
        else if(cellType == CellType.NUMERIC){
            if (DateUtil.isCellDateFormatted(cell)) {
                return cell.getDateCellValue();
            } else {
                return cell.getNumericCellValue();
            }
        }
        else if(cellType == CellType.STRING) {
            return cell.getStringCellValue();
        } else {
            return null;
        }
    }





}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fangyuandoit/article/details/91569229

智能推荐

Maven核心_-dmaven.multimoduleprojectdirectory=$m2_home -dmav-程序员宅基地

文章浏览阅读1k次。此篇,主要一步一步讲明Mavne 的核心内容,包括创建maven目录、仓库、更改仓库路径,在Eclipse中安装maven插件,PUM中的常用标签。还有在Maven下创建Web项目,并运用第三方插件运行。_-dmaven.multimoduleprojectdirectory=$m2_home -dmaven.home

【C++】已知二叉树先序遍历+中序遍历 求后序遍历_c++给出中序和前序,求后续-程序员宅基地

文章浏览阅读2.8k次。题目:已知二叉树先序遍历+中序遍历 求后序遍历对于一棵二叉树,给定其先序遍历的结果序列和中序遍历的结果序列,请写出其后序遍历的结果序列。输入样例:GDAFEMHZ(先序遍历的结果序列)ADEFGHMZ(中序遍历的结果序列)输出样例:AEFDHZMG(后序遍历的结果序列)思路分析????因为前序遍历的首个元素即为根节点,且在中序遍历中根节点前的元素位于左子树,根节点后的元素位于右子树。 利用这一性质,可以把问题看成一个递归问题 递归过程是从前序遍历结果中找到中序遍历_c++给出中序和前序,求后续

基于粒子群优化算法的TSP最优路线规划仿真_python实现粒子群算法路径规划-程序员宅基地

文章浏览阅读129次。TSP问题要求在给定的n个城市之间找到一条最短的哈密顿回路,也就是一条能够遍历所有城市且长度最小的路径,其中每个城市只能够被经过一次。在PSO算法中,每个粒子代表当前解空间中的一个可能解,通过不断地更新粒子和全局最优值来达到逼近最优解的目的。对于TSP问题,我们需要将每个城市作为解空间中的一个维度,每个粒子需要记录所有城市的访问顺序。适应度函数定义为所有城市距离之和的倒数,即f(x) = 1/d(x),其中d(x)为从第一个城市开始按照x序列经过所有城市所需的路径长度。2)计算粒子适应度,找到全局最优解。_python实现粒子群算法路径规划

ArcScene:构建三维地图-程序员宅基地

文章浏览阅读8.8k次,点赞4次,收藏41次。主要介绍一下使用ArcScene来制作三维地图,下面是主要的步骤1.打开ArcGIS下面的ArcScene,将研究区域的DEM和矢量边界数据添加进来:2.右键DEM,点击属性->基本高度,选择“在自定义表面上浮动”,该路径选择DEM的路径,单位系数可以根据自己的情况设置,然后点击确定:3.点击确定后效果如图:4.再右键点击矢量图层的属性,操作步骤同第2步,单位系数要和DEM设置的一样5.然后点击该图层的“拉伸”6.点击确定后就可以完成三维地图的制作:..._arcscene

绝对干货!百度文档 用python一键下载_pyhton 下载百度文库-程序员宅基地

文章浏览阅读1.5k次,点赞3次,收藏6次。百度文库下载需要券,或者vip才能下载用python一键免费下载度文档Vip价格高,偶尔下载一次不划算。用python一键免费下载度文档。不下载复制?不好意思复制也需要vip否则只能一次复制两行。如何才能以最低成本获取到百度文库里的文档内容呢?推荐 :020 持续更新,精品小圈子每日都有新内容,干货浓度极高。结实人脉、讨论技术 你想要的这里都有!抢先入群,跑赢同龄人!(入群无需任何费用)点击此处,与Python开发大牛一起交流学习。群号:745895701申请即送:Pytho_pyhton 下载百度文库

USACO section2.4 Overfencing题解&代码_overfencing [usaco 2.4]-程序员宅基地

文章浏览阅读804次。我不会说我因为getline()的问题卡了两天的… 先在Test 6卡了一个小时…发现数组开小了,然后卡在Test 9… 最后调出来发现是自己读入错了,能过八组也是奇迹…/*ID:rainbow16LANG:C++TASK:maze1*/#include#include#includeusing namespace std_overfencing [usaco 2.4]

随便推点

两种lca模版-程序员宅基地

文章浏览阅读534次。最值生成树lca

Chrome DevTools的performance面板查看性能_chrome devtools 上 performance 上咋查看 lcp-程序员宅基地

文章浏览阅读898次。Record 按钮打开想要记录的页面,然后重新加载页面。–> 按 Record 按钮开始一次新的记录,记录时,Record按钮变红。–> 执行页面交互,然后按 Record 按钮停止记录。记录完成后,我们可以通过以下方式去查看我们关心的那部分的数据。一次记录完成之后,可以在Summary区域查看每一项工作花费的时间............_chrome devtools 上 performance 上咋查看 lcp

C++怎么判断一个数是水仙花数?_devc++判断一个数是否为水仙花数-程序员宅基地

文章浏览阅读4.2k次,点赞3次,收藏6次。#include <iostream>using namespace std;int main(){ int a; cout<<"请输入a"<<endl; cin>>a; int b=a/100;//算百位 int c=(a/10)%10;//算十位 int d=a%10;//算个位 if(b*b*b+c*c*c+d*d*d==a) { cout<<"该数是水仙花数!"<<endl; } else {._devc++判断一个数是否为水仙花数

线性共轭梯度法-程序员宅基地

文章浏览阅读757次,点赞9次,收藏10次。在数学和优化问题中,假设我们有一个正定矩阵A。那么,两个非零向量p和q被认为是在ApTAq0pTAq0这个等式意味着,当向量p和向量q通过矩阵A变换后,它们在新空间中是正交的。这里的p^T表示向量p的转置。线性共轭梯度法是一种迭代方法,用于解决形如Ax = b的线性方程组,其中A是一个正定矩阵。该方法特别适用于那些矩阵太大,使得直接解法(如高斯消元法)不切实际的情况。LCG方法的优点是不需要显式地存储矩阵A,只需能够计算矩阵A与任意向量的乘积即可。

InVivoSIM anti-human IL-4Rα (CD124) (Dupilumab Biosimilar)-程序员宅基地

文章浏览阅读267次,点赞4次,收藏4次。IL-4Rα也称为CD124,它与普通γ链(CD132)结合形成仅结合IL-4的1型IL-4R,或与IL-13Rα1结合形成可结合IL-4或IL-13的II型IL-4R。IL-4Rα在这些不同细胞上的表达允许对IL-4和IL-13产生各种细胞反应,包括调节免疫细胞分化、活化、增殖和存活。此外,IL-4和IL-13的信号传导通过IL-4Rα可以促进组织修复和重塑,并有助于各种过敏性和炎症性疾病的发病机制。Dupilumab结合IL-4Rα并抑制IL-4和IL-13的信号传导。

数据结构与算法——循环链表(约瑟夫环)的建立及C语言实现_c语言创建一个环形链表-程序员宅基地

文章浏览阅读269次。无论是静态链表还是动态链表,有时在解决具体问题时,需要我们对其结构进行稍微地调整。比如,可以把链表的两头连接,使其成为了一个环状链表,通常称为循环链表。_c语言创建一个环形链表

推荐文章

热门文章

相关标签