【RPA天天练】004——Excel插入日期
评论
收藏

【RPA天天练】004——Excel插入日期

经验分享
花括号
2025-07-17 13:27·浏览量:716
花括号
影刀专家
发布于 2025-07-15 23:46更新于 2025-07-17 13:27716浏览

日期在Excel中经常用到,但是用影刀RPA向Excel写入和读取日期,却藏着许多弯弯绕绕。


上面代码,创建了今天、明天、后天三个日期格式,和他们的字符串格式;

Excel的A、B两列设置为日期格式,A列写入字符串格式,B列写入datetime格式,两种格式都能写入。


神奇的发现:

B列写入的datetime日期,比A列的字符串日期,减少了8个小时。

将B2单元格读取,打印出来,是UTC时区。


问题原因:

  1. Excel的日期时间处理机制:

   Excel内部以 UTC时间(世界协调时) 存储日期时间值(数值类型),但显示时会根据 操作系统的本地时区设置 自动转换。

   例如,若系统时区是 UTC+8(如北京时间),写入 2025-07-15 22:41:39(本地时间)时:

       Excel 会将其视为 UTC+8 时间,先转换为UTC时间(减8小时 → 2025-07-15 14:41:39)。

       存储后,当查看时,Excel 又会用本地时区转换回 UTC+8 时间(加8小时 → 显示 22:41:39)。

   但实际现象是存储后显示为 14:41:39,表明影刀RPA在写入时可能已额外做了一次时区转换。


2.影刀RPA的潜在行为:

   影刀RPA可能将您提供的日期时间字符串 错误识别为UTC时间(而非本地时间)。

   写入时,Excel 收到一个UTC时间值(2025-07-15 22:41:39),再按系统时区 UTC+8 转换为本地时间:

       22:41:39(UTC) → 减8小时 → 14:41:39(UTC+8)。


我们现在常用的写入日期方法,是A列的 强制以文本格式写入(避免转换)

将日期时间作为文本字符串写入,Excel不会进行时区转换,

但是此方法会失去日期时间格式(无法用于计算、筛选、图表等),仅适合展示。


之前在  飞书表格写入日期和时间  一文中详细介绍了飞书表格中用 时间序列号 的方式写入日期。

Excel中同样适用。

写入浮点类型数值,其中:

整数部分:表示自 1899 年 12 月 30 日以来的天数

小数部分:表示该时间占 24 小时的份额(例如 0.5 表示中午 12 点)

计算公式:小数部分=(时*60*60 + 分*60 +秒) / (24*60*60)



时间序列号默认是以年月日的格式保存。


这种方式写入的日期,是可以进行筛选的。

收藏1
全部评论1
最新
发布评论
评论