0

我正在使用 WIN32OLE 读取一些处于各种混乱状态的数据文件。现在,我已经能够使用 Sentences 和 Shapes 方法从大多数文件中读取文本,但是,对于带有超链接的文件,我只能读取超链接文本,而不能读取基础 URL。

我一直在研究“超链接”的方法/ole_methods,并尝试了很多,但除了文本之外,没有人发布过超链接的任何属性(在某些情况下是适当的)。

irb(main):084:0> doc.Sentences(4).hyperlinks.inspect
=> "#<WIN32OLE:0x2c233d0>"

irb(main):085:0> doc.Sentences(4).hyperlinks.text
=> "Hi I'm a link!"

最相关的谷歌结果处理添加到 Excel 的链接,使用不是超链接方法的“地址”标签。其他人提到“行动”,这似乎也不是一种方法。

4

2 回答 2

2

这对我有用:

doc.Hyperlinks.each do |x|
  puts x.Address
end

编辑:我也得到了这个用于从 TextBoxes 中获取链接的工作。

doc.Shapes.each do |x|
  x.TextFrame.TextRange.Hyperlinks.each do |i|
    puts i.Address
  end
end

无论显示文本如何,这两个都给出了完整的地址。

于 2010-12-16T21:45:56.270 回答
1

HyperLinks 对象是 HyperLink 对象的集合。

每一个都包含一个“Address”属性,该属性应该指向链接的 URL,以及一个“textToDisplay”属性。

我对 ruby​​ 或 win32ole 库一无所知,但你能找到集合中的 Hyperlink 对象吗,可能是这样的:

irb(main):084:0> doc.Sentences(4).hyperlinks(1).TextToDisplay

irb(main):084:0> doc.Sentences(4).hyperlinks(1).Address
于 2010-12-16T21:45:06.643 回答