R语言使用write.xlsx按日期命名Excel文件报错的解决咨询
错误原因
你遇到的报错是write.xlsx与write.csv2的参数位置、定义不同导致的:write.xlsx的第二个位置参数为col.names,要求传入逻辑值(TRUE/FALSE),你原本的写法直接把日期字符串作为第二个参数传入,等于把字符串赋值给了col.names,触发逻辑判断报错。同时你没有将文件名各部分拼接为完整字符串,拆分传递的写法也不符合函数传参要求。
正确实现代码
使用paste0拼接路径、日期、文件后缀为完整字符串,再传入file参数即可:
# 拼接完整文件路径,%Y对应4位年份,匹配你需要的命名格式 full_file <- paste0("C:\\Users\\Docs\\sheet", format(Sys.Date(), "%d_%m_%Y"), ".xlsx") # 调用write.xlsx导出 write.xlsx(dt, file = full_file, row.names = FALSE, sheetName = "DATA")
注意事项
- 日期格式符区分大小写:
%y输出2位年份(如21),%Y输出4位年份(如2021),按照你需要的sheet20_09_2021.xlsx格式,需使用大写%Y。 - 调用
write.xlsx时建议显式标注参数名,避免位置参数错位传错值。
内容的提问来源于stack exchange,提问作者Jonathan Livingston Seagull
相关产品推荐
相关产品推荐

