问题描述
如果您打开一个 Excel 2016 的新实例并按以下格式输入日期 8/15
,它将在 Excel 中输出如下:
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 最终将这些日期读取为 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 格式 Date > *3/14/2012
。如何在 Excel 中以 Excel Custom > d-mmm
格式获取要识别的日期?输出看起来像这样,不应该涉及任何手动 Excel 步骤:
解决方法
按照文档应用全局格式语法
options(openxlsx.dateFormat = "d-mmm")
文档:
https://rdrr.io/cran/openxlsx/man/openxlsx.html