如何使Excel中的链接在单个浏览器选项卡中打开

3

我有一个Excel电子表格,在其中一列中有HTML链接。这些链接是通过Win32::OLE的Perl脚本生成的,如下所示(在具有索引$ i的循环内):

my $range = $Sheet->Range("B".$row);
my $link = "http://foobar.com/show.pl?id=$i";
$Sheet->Hyperlinks->Add({Anchor=>$range,Address=>$link,TextToDisplay=>"Link to $i"});

目前,每次我点击这些链接时,它们都会在新的浏览器标签页中打开。由于这些链接很多,所以在一段时间内使用表格后,我就会有20个标签页。这很麻烦,因为我不得不定期地去关闭它们。

有没有办法让这些链接在同一个浏览器标签页中打开?我不知道是否可以使用Hyperlinks->Add方法指定具有常量名称的锚点目标的HTML等效项,或者这是否能够完成工作。


从阅读周围的内容来看,ShellExecute在Explorer中打开URL的默认行为似乎是替换当前页面。也许您可以尝试使用不同的超链接目标格式,调用类似rundll32.exe shell32.dll,ShellExecute的东西... - pascal
问题是如何通过Perl Win32调用Excel对象模型来实现。看起来应该可以指定链接的目标并为所有链接指定相同的目标。 - Steve
3个回答

1

尝试使用Spreadsheet::WriteExcel

#!/usr/bin/perl -w
use strict;
use Spreadsheet::WriteExcel;

# Create a new workbook called simple.xls and add a worksheet
my $workbook  = Spreadsheet::WriteExcel->new('Example.xls');
my $worksheet = $workbook->add_worksheet();

# The general syntax is write($row, $column, $token). Note that row and
# column are zero indexed
# Write a hyperlink
$worksheet->write(10, 0, 'http://perldoc.perl.org/');
$worksheet->write(11, 0, 'http://stackoverflow.com/');

__END__  

超链接在同一浏览器标签页中打开(在IE、Firefox、Chrome中正常工作)


对我来说,链接会在单独的选项卡中打开。Perl 模块不错,我之前并不知道它。 - Steve

1

取决于您使用的浏览器:

对于Firefox,请参见此链接强制Firefox在同一标签页中打开链接

需要在about:config中设置选项browser.link.open_newwindow = 1

对于IE,工具/选项/常规/选项卡/设置

Open links from other programs in: The current Tab or Window

我认为管理选项卡更多的是浏览器的任务,如果有人成功地覆盖了我配置的浏览器行为,我会疯掉。我还使用带有链接的电子表格并打开大约相同数量的选项卡,这一切都很好。此外,Firefox 中还有“关闭其他选项卡”的选项。 - Roman Grazhdan
这是一个可能的解决方案,但我只想更改此任务的行为,如果我理解正确,这些更改是全局性的。 - Steve

0

我已经找到了Excel对象模型的文档,但是没有任何超链接属性表明这是可能的。不过还是感谢你的回复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接