You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:07:32