需要创建一个Excel文件,其中某些单元格中有numbers
,这些数字应该作为超链接的标签。
所以,使用以下演示代码:
use strict;
use warnings;
use Excel::Writer::XLSX;
my $workbook = Excel::Writer::XLSX->new( 'test.xlsx' );
my $f_url = $workbook->add_format( color => 'blue', underline => 1 );
my $worksheet = $workbook->add_worksheet();
my $url = 'http://example.com/aaa=';
my $num = 123;
$worksheet->write_url( 0, 0, $url.$num, $f_url, $num );
$workbook->close();
在Excel中打开test.xlsx
后,它会显示有关number stored as text
的单元格警告,如下面的屏幕截图所示:
选择convert to number
后:
E.g。正确的超链接,其中"数字"是真正的数字(右对齐,没有警告)。
问题是:如何创建test.xlsx
以获得正确的细胞类型?例如number
和 hyperlink
?
write_string()
write_number()
write_blank()
write_formula()
write_url()
write_row()
write_col()
但write_url
(在示例中使用)生成" text"而不是数字类型的单元格。
这里有一些解决方法可以在没有警告的情况下创建正确的xlsx
吗?
答案 0 :(得分:1)
只需要更准确地阅读文档。它说:
如果您希望获得其他一些细胞数据,例如数字或公式 您可以使用另一个写入_ *()来覆盖单元格:
所以,解决方案正在使用:
$worksheet->write_url( 0, 0, $url.$num, $f_url, $num );
# adding another write after the write_url - the link remains
$worksheet->write_number( 0, 0, $num, $f_url ); # and now it is an number