使用write_xlsx写入多Sheet Excel时的报错与命名问题
解决write_xlsx生成指定工作表名Excel的问题
问题原因分析
用
c(Cases, Coordinators, Contacts)合并报错的原因:c()函数处理数据框时,会将每个数据框的列拆分为独立元素,最终得到的不是包含三个数据框的列表,而是一个由所有数据框列组成的扁平化列表,不符合write_xlsx要求的输入格式(必须是单个数据框或数据框组成的列表),因此触发报错。用
list(Cases, Coordinators, Contacts)生成默认工作表名的原因:
未给列表元素命名时,write_xlsx会自动使用Sheet1/2/3这类默认值作为工作表名。
正确解决方案
创建命名列表,将每个数据框与指定的工作表名绑定,代码如下:
# 创建包含指定名称的命名列表 compiledData <- list( Cases = Cases, Coordinators = Coordinators, Contacts = Contacts ) # 生成带指定工作表名的Excel文件 write_xlsx(compiledData, "FileName.xlsx")
执行上述代码后,生成的Excel文件会自动将三个工作表命名为Cases、Coordinators、Contacts,同时满足write_xlsx的输入格式要求,不会出现报错。
内容的提问来源于stack exchange,提问作者techieshrink
相关产品推荐
相关产品推荐

