使用 openxlsx 包的工作表链接问题
Issue with links to sheets using the openxlsx package
我经常使用 openxlsx
软件包,对此我感到非常满意。我最近购买了一台 Windows 10 的新电脑,并继续使用我自己编写的一些程序。但是,在新机器上,当在 Excel 文件本身中创建 links 到 sheets 时,我注意到一个奇怪的行为。考虑以下最小示例:
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"))
writeData(wb = wbook, sheet = "Data", x = data.frame(X = 1:10, Y = 11:20))
saveWorkbook(wb = wbook, file = "C:/temp/test.xlsx", overwrite = TRUE)
当我打开文件时,我在 Index
sheet 中看到以下内容:
单击单元格中的 link 会在 Excel 中出现错误框,“无法打开指定的文件”。我也在同一台机器上的 Arch Linux 下尝试了这个,结果是一样的。如果我执行上面代码的以下部分
makeHyperlinkString(sheet = "Data", text = "Click")
控制台中的结果符合预期:
[1] "=HYPERLINK(\"#'Data'!A1\", \"Click\")"
由于某些原因,在将工作簿写入磁盘时,双引号和单引号被转换为 HTML "e;
和 '
标记。
单元格中的实际公式应该是=HYPERLINK("#'Data'!A1", "Click")
并且应该在Excel中显示如下:
后一个是在我以前的计算机上 Windows 10 下生成的。我也在我以前的计算机上的 Arch Linux 下尝试过它,它工作得很好。我在 Windows 10 下的第三台机器上试过没有问题。我试过的所有计算机都具有相同的语言设置。这是 Windows 和 Linux 下所有三台计算机上 R 中 Sys.getlocale()
命令的输出:
[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
此行为的原因可能是什么?
已经有一个 issue in version 4.2.4 which has already been reported and a bug fix should be part of the next release and is already part of the development version 4.2.4.9000.
尝试:
remotes::install_github("ycphs/openxlsx")
我刚测试了一下,结果符合预期。
我经常使用 openxlsx
软件包,对此我感到非常满意。我最近购买了一台 Windows 10 的新电脑,并继续使用我自己编写的一些程序。但是,在新机器上,当在 Excel 文件本身中创建 links 到 sheets 时,我注意到一个奇怪的行为。考虑以下最小示例:
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"))
writeData(wb = wbook, sheet = "Data", x = data.frame(X = 1:10, Y = 11:20))
saveWorkbook(wb = wbook, file = "C:/temp/test.xlsx", overwrite = TRUE)
当我打开文件时,我在 Index
sheet 中看到以下内容:
单击单元格中的 link 会在 Excel 中出现错误框,“无法打开指定的文件”。我也在同一台机器上的 Arch Linux 下尝试了这个,结果是一样的。如果我执行上面代码的以下部分
makeHyperlinkString(sheet = "Data", text = "Click")
控制台中的结果符合预期:
[1] "=HYPERLINK(\"#'Data'!A1\", \"Click\")"
由于某些原因,在将工作簿写入磁盘时,双引号和单引号被转换为 HTML "e;
和 '
标记。
单元格中的实际公式应该是=HYPERLINK("#'Data'!A1", "Click")
并且应该在Excel中显示如下:
后一个是在我以前的计算机上 Windows 10 下生成的。我也在我以前的计算机上的 Arch Linux 下尝试过它,它工作得很好。我在 Windows 10 下的第三台机器上试过没有问题。我试过的所有计算机都具有相同的语言设置。这是 Windows 和 Linux 下所有三台计算机上 R 中 Sys.getlocale()
命令的输出:
[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
此行为的原因可能是什么?
已经有一个 issue in version 4.2.4 which has already been reported and a bug fix should be part of the next release and is already part of the development version 4.2.4.9000.
尝试:
remotes::install_github("ycphs/openxlsx")
我刚测试了一下,结果符合预期。