excel学习库

excel表格_excel函数公式大全_execl从入门到精通

关于LabVIEW读取Excel表格中的日期和时间问题

问题描述

Excel数据表格中有日期列和时间列,如下表所示:

通过LabVIEW直接读取Excel表格数据,读出的日期列和时间列数据与原始表格不一致,直接读出来的数据如下表所示:

日期、时间列数据异常

问题产生原因

该问题产生的原因:

1)默认情况下,Microsoft Excel for Windows 使用的是 1900日期系统,这表示第一个日期为 1900年1月1日。

注意: Excel 会将日期存储为连续序列号,以便能在计算中使用它们。1900 年1月1日的序列号为 1,2008 年1月1日的序列号为 39448,这是因为它与1900年1月1日之间相差 39,447 天,可以更改数字格式(设置单元格格式)以显示正确的日期。

2)而LabVIEW中可以以秒数来表述日期和时间即表示自1904年1月1日12:00 am (通用时间[1904-01-01 00:00:00]) 以来无时区影响的秒数

正因为Excel和LabVIEW在表述日期和时间上的差异,导致了LabVIEW直接读取Excel表格中的日期和时间列时的数据显示异常。

解决方案

知晓了原因后,就可以通过换算获得正确的日期和时间数据,步骤如下:

1)LabVIEW直接读取Excel数据,获得的是自1900 年1月1日以来以天为单位的日期和时间数据;

2)因LabVIEW日期起始时间为1904-01-01 00:00:00(无时区),相隔4年,因此将读取到的Excel日期和时间数据-1462(1900~1904这4年换算为天数),获得真实的以天数为单位的自1900年1月1日以来的日期和时间。

3)因LabVIEW是以秒数来存储日期和时间的,因此需要将第2步得到的天数换算为秒数,即天数*86400(60*60*24);

4)又因中国位于东8区,因此还得在无时区秒数描述的日期时间数据上-28800(60*60*8),得到东8区所在时刻的以秒数为单位的日期时间数据;

5)再通过“转换为时间标识”函数,将显示样式转换为时间标识。

LabVIEW代码实现

LabVIEW实现代码如下图所示:

LabVIEW代码实现

效果展示

LabVIEW运行效果如下图所示:

为便于对比,此处再放上Excel表格中的原始数据,如下表所示:

总结

有时候出现一些看似比较奇怪的现象,其实都有其内在原因。像今天讲述的Excel和LabVIEW之间对于日期和时间数据存储和处理的差异,导致了本文中第1个章节所描述的相关问题,通过本文的阐述,相信大家不仅知其然,也知其所以然了。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接