将 R 数据框写入 Excel 文件,保持 Excel 的默认日期格式

问题描述

如果您打开一个 Excel 2016 的新实例并按以下格式输入日期 8/15,它将在 Excel 中输出如下:

excel image

Excel 的 格式菜单将其标识为 Custom > d-mmm。现在让我们继续讨论这个问题的 R 部分。我将创建一个简单的数据框:

df <- data.frame(col1 = as.Date(c("2021-01-01","2021-02-15")),col2 = c(3,9))
#>         col1 col2
#> 1 2021-01-01    3
#> 2 2021-02-15    9

我想将此数据框写入 Excel 文件,并且认为 Excel 的 Custom > d-mmm 日期格式(如图所示)以上)。

我的第一次尝试非常通用,并且使用了 writexl 包:

library(writexl)
write_xlsx(df,"df.xlsx")

excel image

Excel 最终将这些日期读取为 Excel 的 yyyy-mm-dd 格式,而不是我想要的 Custom > d-mmm 格式。让我更复杂一点,并尝试使用 openxlsx 包来获得我想要的:

library(openxlsx)
options(xlsx.date.format = "d-mmm")
write.xlsx(df,file = "df.xlsx",asTable = TRUE)

excel image

这一次,输出采用 Excel 格式 Date > *3/14/2012。如何在 Excel 中以 Excel Custom > d-mmm 格式获取要识别的日期?输出看起来像这样,不应该涉及任何手动 Excel 步骤:

excel image

解决方法

按照文档应用全局格式语法

options(openxlsx.dateFormat = "d-mmm")

文档:

https://rdrr.io/cran/openxlsx/man/openxlsx.html