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

使用openxlsx导出.xls文件时遭遇格式与扩展名不匹配错误的求助

使用openxlsx导出.xls文件时遭遇格式与扩展名不匹配错误的求助

大家好,我写了一个R函数,用来接收DataFrame,借助openxlsx做一系列格式转换后导出成Excel文件,代码如下:

export_workbook_from_df <- function(data, path) {

wb <- openxlsx::createWorkbook()

openxlsx::addWorksheet(wb, sheetName = "Sheet1")

openxlsx::openxlsx_setOp("numFmt", "0,00")

number_format <- openxlsx::createStyle(numFmt = "Number") # 创建千分位格式

wb |>

openxlsx::addStyle(sheet = 1,

number_format,

rows = 1:nrow(dados) + 1, cols = c(6),

gridExpand = T

)

openxlsx::writeData(wb, sheet = 1, data)

openxlsx::saveWorkbook(wb, paste0(path, ".xlsx"))

}

原本这个函数导出.xlsx格式是完全正常的,但当我把最后一行的保存格式改成.xls时:

openxlsx::saveWorkbook(wb, paste0(path, ".xls"))

打开文件时就会弹出错误提示,大意是:

文件格式与扩展名不匹配。文件可能已损坏或不安全。除非您信任来源,否则请勿打开。是否仍要打开?

不过如果我先导出成.xlsx文件,再手动在Excel里另存为.xls格式,文件就能正常打开使用,不会弹出错误。

我还试过用XLConnect中转格式:先导出.xlsx,再用XLConnect加载后转存成.xls,代码如下:

openxlsx::saveWorkbook(wb, paste0(path, ".xlsx"))

XLConnect::loadWorkbook(paste0(path, ".xlsx")) %>%
XLConnect::saveWorkbook(paste0(path, ".xls"))

虽然确实生成了.xls文件,但打开时还是会出现同样的格式不匹配错误。

值得一提的是,不管用哪种方法导出的.xls文件,里面的数据都和原.xlsx文件完全一致,就是每次打开都会弹出那个烦人的错误提示,想问问有没有办法解决这个问题?

备注:内容来源于stack exchange,提问作者Alysson Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 13:17:34