我有一个输入xlsx工作簿,其中包含许多(数千个)内部超链接到许多其他工作表(在同一工作簿中)。在xlsx image:" A2"链接到" linksTab!B3"。 xlsx file本身位于Dropbox上。
我可以使用
访问(基于此similar question)library(XML)
# rename file to .zip
my.zip.file <- sub("xlsx", "zip", my.excel.file)
file.copy(from = my.excel.file, to = my.zip.file)
# unzip the file
unzip(my.zip.file)
# unzipping produces a bunch of files which we can read using the XML package
# sheet1 has our data
xmlfile <- xmlParse("xl/worksheets/sheet1.xml")
但是,在这种情况下,引用的问题输出中的最终xml提取会产生空输出。深入研究XML sheet1,我发现链接在xml文件中表示为
&LT;超链接ref =&#34; A2&#34;位置=&#34;!B3 linksTab&#34; tooltip =&#34;转到链接&#34; 显示=&#34;连结&#34; XR:UID =&#34; {94 ...&#39;
如何提取它们?
答案 0 :(得分:0)
找到我自己的答案: 按上述方式加载xmlfile后,通过
获取链接# grab the hyperlinks, and dump the XML components by convert them to character vector
linkReferences <- tibble(
RefCell = as.character( xpathApply(xmlfile, "//x:hyperlink/@ref", namespaces="x")),
LinkCell = as.character( xpathApply(xmlfile, "//x:hyperlink/@location", namespaces="x"))
)
linkReferences
# A tibble: 5 x 2
RefCell LinkCell
<chr> <chr>
1 A2 linksTab!B3
2 A3:A5 linksTab!B3
3 A3 linksTab!D3
4 A4 linksTab!F3
5 A5 linksTab!H3