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

使用openxlsx生成Excel内部工作表超链接出现转义异常问题

异常原因

该问题由openxlsx包版本差异导致:
你新设备上安装的是openxlsx ≥ 4.2.5版本,该版本在writeFormula()函数中新增了XML转义逻辑,默认开启状态下会自动将公式中的双引号、单引号转换为"、'这两类XML实体字符,导致Excel解析公式时无法识别正确的超链接路径。
旧设备使用的是未添加该转义逻辑的低版本openxlsx,公式会原样写入,因此运行正常。

修复方案

  1. 无需更换包版本的前提下,在writeFormula()调用时添加escapeFormula = FALSE参数手动关闭转义即可,修改后代码如下:
library(openxlsx)

wbook <- createWorkbook()

addWorksheet(wb = wbook, sheetName = "Index")
addWorksheet(wb = wbook, sheetName = "Data")

writeFormula(wb = wbook, sheet = "Index", startCol = 1, startRow = 1, 
             x = makeHyperlinkString(sheet = "Data", text = "Click"),
             escapeFormula = FALSE)

writeData(wb = wbook, sheet = "Data", x = data.frame(X = 1:10, Y = 11:20))

saveWorkbook(wb = wbook, file = "C:/temp/test.xlsx", overwrite = TRUE)
  1. 也可以将新设备的openxlsx版本回退到和旧设备一致的低版本,比如4.2.4版本:
# 先安装remotes包如果未安装
install.packages("remotes")
remotes::install_version("openxlsx", version = "4.2.4")

内容的提问来源于stack exchange,提问作者panman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:27:04