You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab导入大型Excel文件时如何保留原时间格式

解决readtable导入Excel时时间列变为数值的问题

Excel中的时间本质是小数(代表一天的占比,比如0.001对应约1分26秒),readtable默认会按数值类型导入,导致原HH:mm格式丢失。以下是两种保留时间格式的方法:

方法一:导入时直接指定时间列格式

通过detectImportOptions创建导入配置,强制将时间列识别为datetime或duration类型:

% 创建导入选项对象,自动检测文件结构
opts = detectImportOptions('Book1.xls');

% 假设第1列是时间列,设置变量类型为datetime,并指定显示格式为HH:mm
opts.VariableTypes(1) = {'datetime'};
opts.VariableFormats(1) = {'HH:mm'};

% 按配置导入表格
data = readtable('Book1.xls', opts);

如果只需要时间(不需要日期),也可以将类型设为duration,格式同样设为HH:mm。

方法二:导入后将数值转换为时间格式

如果已经按数值导入,可通过计算将小数转换为时间格式:

data = readtable('Book1.xls');

% 将第1列的数值转换为duration类型(仅时间),格式设为HH:mm
data.TimeCol = duration(data.Var1*24, mod(data.Var1*24*60,60), 0, 'Format', 'hh:mm');

如果需要带日期的格式,用datetime转换(需指定基准日期,比如当前日期):

data.TimeCol = datetime(data.Var1, 'ConvertFrom', 'excel', 'Format', 'HH:mm');

优化你的拼接代码

当时间列正确识别为时间类型后,无需用table2array转换,直接用字符串拼接更简洁:

% 假设第1列是时间,第2列是其他文本列
d = string(data.Var1) + " " + string(data.Var2);

内容的提问来源于stack exchange,提问作者mathew81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 12:40:37