Таблицы Excel так мало используются ... приятно видеть кого-то с благодарностью за то, что он может предложить, и слава автору модуля за добавление поддержки таблиц.
Несколько вещей ...если вам нужна формула на основе таблицы, объявите ее в свойстве формулы столбца таблицы.Это приведет к тому, что оно будет скопировано в любые новые созданные строки.
{ header => 'Title', formula => '=1+2' }
Во-вторых, может быть способ сделать это с помощью синтаксиса R1C1 (Excel поддерживает его, но я не знаю, еслиExcel :: Writer :: XLSX), но я нахожу, что когда вы ссылаетесь на другие столбцы в таблице, проще всего это сделать на основе столбца таблицы, а не ссылки на ячейку - это одно из больших преимуществ таблиц Excel по сравнению сстандартные диапазоны.
formula => '=[@[Header A]]*[@[Header B]]'
Затрагиваемый код должен выглядеть следующим образом:
my @data = ( [1,2], [3,4], [5,6] );
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',
formula => '=SUM([@[Value 1]]:[@[Value 2]])'
},
]
}
);
Когда вы откроете электронную таблицу и добавите строку, я думаю, вы получите желаемое поведение.