zoukankan      html  css  js  c++  java
  • C# NPOI 日期格式

    之前整理的NPOI导入导出Excel 在之前使用过程中没发现问题。

    但是后来发现导入的文档如果有日期时间格式,导入时会有混乱

    后来找了一下解决方案,最终将其中一段修改即可导入日期(导出未测试)

    原因

    大概是NPOI导入时会大概判断一下Excel文档里面的单元格是什么格式的内容,

    有Blank,Boolean,Numeric,String,Error,Formula 等几种,

    但是就是没有日期的,日期的单元格会被判断成Numeric(数字)类型,

    所以日期格式的单元格就按数字类型来取其中的值,

    所以单元格被判断成数字的之后还要再判断一下是否为日期格式。

            /// <summary>
            /// 获取单元格类型
            /// </summary>
            /// <param name="cell"></param>
            /// <returns></returns>
            private static object GetValueType(ICell cell)
            {
                if (cell == null)
                    return null;
                switch (cell.CellType)
                {
                    case CellType.Blank: //BLANK:  
                        return null;
                    case CellType.Boolean: //BOOLEAN:  
                        return cell.BooleanCellValue;
                    case CellType.Numeric: //NUMERIC:  
                        short format = cell.CellStyle.DataFormat;
                        if (format != 0) { return cell.DateCellValue; } else { return cell.NumericCellValue; }
                    case CellType.String: //STRING:  
                        return cell.StringCellValue;
                    case CellType.Error: //ERROR:  
                        return cell.ErrorCellValue;
                    case CellType.Formula: //FORMULA:  
                    default:
                        return "=" + cell.CellFormula;
                }
            }

    注意

     使用时Excel里的长数字类型,否则这类数据可能会被误判为日期类型

    如:0000123,2017001等这类型的需要处理一下单元格格式->设置成"常规"类型

    转载请注明出处,by lazyneal 2017

  • 相关阅读:
    mongoDB常用命令
    Linux下安装MongoDB
    Linux下mysq基础命令(二)
    Linux下mysql基础命令(一)
    Linux 下使用yum 命令安装MySQL
    Linux 常用命令
    windows7用WMware安装Linux虚拟机详细步骤
    接口测试全流程扫盲
    Jmeter时间格式化
    Jmeter之测试报告
  • 原文地址:https://www.cnblogs.com/lazyneal/p/6795941.html
Copyright © 2011-2022 走看看