使用openxlsx保存预加载多工作表Excel工作簿报错求解决方案
解决openxlsx保存工作簿时的
fill$fillFg错误 以下是几种可行的解决方法:
修复原Excel文件的格式异常
打开input/RCF_step_0.xlsx,重点检查所有工作表(尤其是Sheet1)的单元格填充格式。找到格式损坏或异常的单元格(比如存在无效渐变填充、格式代码错误的单元格),清除或重新设置这些单元格的填充样式后保存文件,再重新执行加载和保存代码。手动重置工作簿的填充样式
若不想修改原文件,可在加载工作簿后遍历工作表,修复有问题的填充样式:WB <- loadWorkbook('input/RCF_step_0.xlsx') # 遍历所有工作表 for(sheet in names(WB)){ styles <- getStyles(WB, sheet = sheet) # 检查并修复原子向量类型的填充样式 for(i in seq_along(styles)){ if(is.atomic(styles[[i]]$fill)){ styles[[i]]$fill <- list(fillFg = "#FFFFFF", fillBg = "#FFFFFF", fillPattern = "solid") } } setStyles(WB, sheet = sheet, styles = styles) } saveWorkbook(WB,'test.xlsx')这段代码会将所有触发错误的填充样式重置为白色纯色填充,规避
$操作符对原子向量的无效调用。调整openxlsx包版本
版本兼容性问题也可能引发该错误,尝试安装不同版本的包:# 安装最新稳定版 install.packages("openxlsx") # 安装指定旧版本(需先安装devtools) # install.packages("devtools") # devtools::install_version("openxlsx", version = "4.2.5")
内容的提问来源于stack exchange,提问作者Jonathan Attey
相关产品推荐
相关产品推荐

