我正在阅读包中read.xlsx()
的Excel 工作簿(.xlsx 格式) xlsx
。我的工作簿将日期存储为函数(例如,=DATE(1900, 1, 1)
),而不是从 1899 年 12 月 31 日开始的字符串或小数天(例如,1/1/1900
或1
)。
read.xlsx
如果工作簿曾经被打开/评估过,这不是问题。但是其中许多工作簿从未打开/评估过(它们是由我的数据提供者生成的,而不是由 Excel 生成的)。因为工作簿尚未打开/评估,它包含 -1 而不是自 1899 年 12 月 31 日以来的实际小数天数(例如,2001 年 5 月 25 日的 37036)。我在这里学到了这一点。因此,如果我在其中一个(从未打开的)工作簿中读取日期,我会得到一列 -1,它read.xlsx
解释为 1899-12-30(即,1899-12-31 的前一天)。
这里有修复吗?我可以touch
使用工作簿来强制评估吗?有什么我可以read.xlsx
先翻转来强制评估的吗?我只看到一个colClasses
论点,这似乎不是问题?我可以避免使用 Excel VBA 脚本将这些工作簿写入文本吗?抱歉,我无法提供任何可重现的代码,但如果您打开 Excel 工作簿进行输入=Date()
,则问题不会存在。