我正在使用模块Excel::Writer::XLSX,我需要评估此条件以检查是否创建了工作表(如果工作表已经存在,我只需要执行某些操作)
my $sheet = $workbook->add_worksheet($filters{$filter}{description});
我该怎么做呢?知道如果工作表已经存在,add_worksheet方法就会"消失"。出现如下错误:
Worksheet name 'All Users', with case ignored, is already used. at ./xxxx.pl line 203.
当然,这样做是行不通的,因为我相信它会计算变量赋值:
if (my $sheet = $workbook->add_worksheet($filters{$filter}{description});) {
# good, sheet doesn't already exists and was created
# i can place my code here to insert header rows etc./ colors
} else {
# program fires a message like :
# Worksheet name 'XXXXXX', with case ignored, is already used. at XXX
# no need to place code for column headers etc., sheet already exists
}
你可以使用
my $name = $filters{$filter}{description};
my $sheet =
$workbook->get_worksheet_by_name( $name ) ||
$workbook->add_worksheet( $name );
nvm,我使用了一个散列,我正在检查散列
if (!$sheets{$filter}) {
$sheets{$filter} = $workbook->add_worksheet($filters{$filter}{description});
工作好