c# - Excel判断单元格的数据类型是DateTime还是Int

标签 c# excel datetime int

我正在开发一些功能,需要知道给定 Excel 电子表格的用户列的数据类型。这些电子表格可以有多种格式,除了第一行是列的名称外没有标准格式。我遇到的问题是能够区分整数和日期时间列。目前,我正在使用以下函数来确定单元格是否为 DateTime 单元格:

 private bool isOADate(double Val)
 {
     try
     {
         DateTime dt = DateTime.FromOADate(Val);
         return true;
     }
     catch (ArgumentException)
     {
         return false;    
     }
 }

但是,如果单元格中有 1、2、3 等,此函数返回 true,因为它能够将这些转换为 1899/12/31 12:00:00 AM、1900/01/01 12:00:分别为 00 AM、1900/01/02 12:00:00 AM。有没有更好的方法来确定单元格的 DateTime 数据类型?或者您可以建议改进我当前的功能以区分它们吗?

最佳答案

VBA 函数 Isdate() 还检查​​单元格格式:27/01/2012 给出 True,它的整数等效结果 40935False

关于c# - Excel判断单元格的数据类型是DateTime还是Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14119733/

相关文章:

python - 使用 python 检查输入字符串是否包含日期(特别是 yy-mm-dd 格式)

iOS NSDate 获取时区特定日期?

c# - 从 2 个可枚举对象创建一个枚举器 <{datatype, datatype}>?

c# - C#中的TIFF文件解析

c# - Aspx 到 Razor 语法转换器?

Python Xlrd读取excel文件报错

python ggplot为日期时间设置轴范围

c# - 找到包含特定子元素的父元素

vba - 如何仅在 UserForm1 的 Page1 中计算 "Checkboxes"?

arrays - 努力总结我的数组