从excel文件读取datenum而不是datestr



我正在尝试从excel工作表中读取测试表,我的excel工作表看起来像这样

 Building      location start_date  start_time  end_date    end_time    number
 Test_Building  1.08    12.06.2016  19:00       12.06.2016      19:30    7

现在,当我在matlab中使用

将其作为表读取时:
R = readtable('testtable.xlsx','ReadVariableNames',1) 
我得到了像 这样的东西
R = 
       Building        location     start_date     start_time      end_date      end_time    number
    _______________    ________    ____________    ____________    ____________    ________    ______
    'Test_Building'    1.08        '12.06.2016'    0.79167         '12.06.2016'    0.8125      7     

现在,如果你注意到start_timeend_time是以datenum格式而不是datestr格式检索的,我如何节省时间,以便当我检索这些变量时它们是datestr格式?

这里要意识到的关键是,如果在Excel中使用日期,它将不会被存储为字符串,而是作为相应的datenum。特别是,两个人打开同一个文件可能会根据他们的设置看到不同的字符串。

因此不存在'从excel中获取日期字符串'这样的事情。

有解决这个问题的方法,例如通过将您的日期存储在excel中作为字符串(如您在评论中提到的)。然而,这并不总是可能的。

也许甚至有可能加载字符串,因为Excel会显示它给定你的当前设置,但这当然不是很便携,如果你改变你的设置,你可能很容易遇到麻烦,因为下面的计算在Matlab将不再匹配格式。更不用说您需要分别解析不同格式的日期列,即使它们位于同一个文件中。

因此,我建议如下:

读取数据,并在MATLAB中解析

当然你可能想要一个日期,但即使你把它解析成一个字符串,这仍然是推荐的通用解决方案。

您在注释中提到要使用datevec,因此您应该能够使用以下两个选项之一:

DateVector = datevec(DateNumber)

根据你的来源,你可能需要从数字中添加或减去一个常数来得到正确的日期。(可能Excel不需要这样,但只要尝试一次。)

相关内容

  • 没有找到相关文章

最新更新