openxlsx调用writeData、saveWorkbook生成的Excel文件损坏如何解决?
问题根本诱因
你代码中的错误是对createWorkbook()函数的传参不符合要求:该函数的第一个入参为工作簿创建者信息,而非输出文件路径。你误将输出路径传入createWorkbook(),导致生成的工作簿内部元数据结构异常,所以打开时会触发损坏修复提示。
修正后可正常运行的代码
library(openxlsx) # 构造模拟数据框 Name <- c("Jon", "Bill", "Maria", "Ben", "Tina") Age <- c(23, 41, 32, 58, 26) df <- data.frame(Name, Age) # 定义输出文件路径 output_path <- "check_corruption.xlsx" # createWorkbook无需传入输出路径,路径仅需在保存时指定 wb <- createWorkbook() addWorksheet(wb, "Sheet1") # 写入无格式数据 writeData(wb, sheet=1, df) # 保存最终输出文件 saveWorkbook(wb, output_path, overwrite=TRUE)
效果验证
- 运行修正代码后生成的
check_corruption.xlsx可直接打开,不会弹出损坏修复提示 - 写入的数据内容完整,和原代码预期输出一致
内容的提问来源于stack exchange,提问作者goblinshark
相关产品推荐
相关产品推荐

