Я - одна рабочая книга, и я надеюсь передать ее различным подпрограммам, каждая из которых пишет в одну и ту же таблицу.Первый подпункт создаст лист и напишет несколько столбцов, а остальные добавят больше столбцов и заполнят ячейки в этих столбцах.Я наблюдаю, что некоторые ячейки не могут быть записаны другими подпрограммами, как показано ниже:
sub SubOne
{
my ($workbook) = @_;
my $worksheet = $workbook->add_worksheet("Startup");
my $formatHead = $workbook->add_format();
$formatHead->set_bold();
$formatHead->set_align('center');
$formatHead->set_bg_color('yellow');
my $formatContents = $workbook->add_format();
$formatContents->set_align('center');
$worksheet->set_tab_color('Red');
$worksheet->set_column('A:A', 11);
$worksheet->set_column('B:B', 15);
$worksheet->set_column('C:C', 15);
$worksheet->set_column('D:D', 24);
$worksheet->write(0, 0, "column0", $formatHead);
$worksheet->write(0, 1, "column1", $formatHead);
$worksheet->write(0, 2, "column2", $formatHead);
$worksheet->write(0, 3, "column3", $formatHead);
#Fill the columns with data
}
Все это прекрасно работает.Четыре столбца созданы с заголовками и имеют данные в них.Допустим, под каждым столбцом находятся 3 строки данных.Это все работает отлично.Затем в качестве примера вызывается другая подпрограмма, подобная следующей:
sub SubTwo
{
my ($workbook) = @_;
my $worksheet3 = $workbook->sheets(0);
my $formatHead = $workbook->add_format();
$formatHead->set_bold();
$formatHead->set_align('center');
$formatHead->set_bg_color('yellow');
my $formatContents = $workbook->add_format();
$formatContents->set_align('center');
$worksheet3->write(0, 4, "column4", $formatHead );
$worksheet3->write(0, 5, "column5", $formatHead );
$worksheet3->write(6, 6, "test1", $formatContents);
$worksheet3->write(7, 7, "test2", $formatHead);
$worksheet3->write(1, 8, "test3", $formatHead);
$worksheet3->write(7, 1, "test4", $formatContents);
}
Из них пишутся только test1, test2, test4.Они находятся в правильных клетках.Как будто ничто не может быть записано в строки, которые были записаны предыдущим SubOne.Почему строки будут заблокированы от дальнейшей записи?
EDIT: Исправлено отключение set_optimization ().