Я использую модуль Perl Excel :: Writer :: XLSX. Если я ввожу функцию непосредственно в Excel под проверкой данных, она работает. Измененная форма для сценария Perl не работает.
У меня есть несколько листов в файле Excel. Под «проверка данных» -> «список», я использую это как «источник»:
=BEREICH.VERSCHIEBEN(Boden_Subtyp!$E:$G;1;VERGLEICH(Profil!$G$2;Boden_Subtyp!$E$1:$G$1;0)-1;ANZAHL2(INDEX(Boden_Subtyp!$E:$G;;VERGLEICH(Profil!$G$2;Boden_Subtyp!$E$1:$G$1;0)));1)
Это работает.
Если я использую это в измененной форме в моем скрипте Perl, чтобы создать файл Excel с этой функцией, чтобы я не мог открыть файл Excel. Модифицированная форма:
=BEREICH.VERSCHIEBEN('Boden_Subtyp'!$E:$G;1;VERGLEICH('Profil'!$G$2;'Boden_Subtyp'!$E$1:$G$1;0)-1;ANZAHL2(INDEX('Boden_Subtyp'!$E:$G;;VERGLEICH('Profil'!$G$2;'Boden_Subtyp'!$E$1:$G$1;0)));1)
Код взломан:
$validate_source = "=BEREICH.VERSCHIEBEN('Boden_Subtyp'!$E:$G;1;VERGLEICH('Profil'!$G$2;'Boden_Subtyp'!$E$1:$G$1;0)-1;ANZAHL2(INDEX('Boden_Subtyp'!$E:$G;;VERGLEICH('Profil'!$G$2;'Boden_Subtyp'!$E$1:$G$1;0)));1)";
$profil_zugriffshash -> data_validation(
$iii,$spaltenzaehler,
{
validate => 'list',
source => "$validate_source",
}
);
Если файл Excel создан, я открою его в Excel и получу ошибку: нечитаемый контент Excel был найден ...