【发布时间】:2018-12-13 08:39:49
【问题描述】:
因此,在 Excel 中,我可以手动创建以下内容(我让它在 C 列中显示公式):
然后,我可以选择 A:1 到 C3,选择 Insert -> Table,然后在 Create Table 对话框中按 OK 将我的数据变成一个表,取消选中 Filter Button 框:
然后,当我右键单击第 3 行并选择“插入”时,我得到一个新的第 3 行,其中 C 列的公式已正确复制。
我的问题是我似乎无法使用 Excel::Writer::XLSX 使用 Perl 生成 Excel 文件,该文件可以创建一个表格,在该表格中插入一行将导致公式被复制。它最终是空白的,像这样:
下面是我的代码。任何见解将不胜感激。
#!/usr/bin/env perl
use strict;
use warnings;
use Excel::Writer::XLSX;
my $filePath = shift;
my $workbook = Excel::Writer::XLSX->new( $filePath );
my $worksheet = $workbook->add_worksheet( 'Metadata' );
my @data = ( [1,2,"=SUM(A2:B2)"], [3,4,"=SUM(A3:B3)"], [5,6,"=SUM(A4:B4)"] );
my $rowCount = (scalar @data) + 1;
$worksheet->add_table(
"A1:C$rowCount",
{
data => \@data,
name => 'Table1',
style => 'Table Style Medium 2',
autofilter => 0,
header_row => 1,
columns => [
{ header => 'Value 1' },
{ header => 'Value 2' },
{ header => 'Sum' },
]
}
);
$workbook->close();
【问题讨论】: