Я работаю над автоматизацией экспорта некоторых данных в xlsx-файлы с помощью Perl, особенно с модулем Excel :: Writer :: XLSX. Если некоторые уже созданные столбцы пусты или не имеют значения, я хочу, чтобы они были скрыты. Хотя в некоторых случаях это было легко сделать с помощью общей команды:
$worksheet->set_column( 'I:J', undef, undef, 1);
в каком-то конкретном случае они не исчезнут, как предполагалось. После многих попыток выяснилось, что проблему можно решить, изменив способ их установки.
Например, если я создал их так:
$worksheet->set_column( 'I:I', 40 );
$worksheet->set_column( 'J:M', 60 );
$worksheet->set_column( 'N:N', 40 );
Затем команда
$worksheet->set_column( 'K:N', undef, undef, 1);
будет скрывать только столбец «N».
Решением было создать их таким образом
$worksheet->set_column( 'J:J', 60 );
$worksheet->set_column( 'K:M', 60 );
$worksheet->set_column( 'N:N', 40 );
Так что это работает, но код выглядит глупо, и вся ситуация просто не имеет смысла для меня. Кто-нибудь знает, почему это происходит, и если да, то есть ли другое решение проблемы?