Используя Perl Write Excel XLS, я читаю из файла 1 и записываю в файл 2. Хотя мой код успешно записывает те же данные из файла 1 и файла 2, однако файл 2 не поддерживает тот же формат цвета, что и файл 1 (файл 1 Excel отображает бело-голубой формат для каждой второй строки).
Есть ли в Perl Excel Parse / Write опция для сохранения того же цветового кода? Я исследовал CPAN и этот сайт, но мне не удалось найти какие-либо параметры, которые можно было бы применить в сценарии Perl.
Мой код:
##! /usr/bin/perl
use v5.10.0;
use warnings;
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::SaveParser;
use Spreadsheet::WriteExcel;
my $parser = Spreadsheet::ParseExcel::SaveParser->new();
my $workbook_R = $parser->parse('C:\Perl\databases\File1.xls');
my $workbook_W = Spreadsheet::WriteExcel->new('C:\Perl\databases\File2.xls');
my $worksheet_W = $workbook_W->add_worksheet();
for my $worksheet_R ($workbook_R->worksheets()) {
my ($row_min, $row_max ) = $worksheet_R->row_range();
my ($col_min, $col_max ) = $worksheet_R->col_range();
for my $row ($row_min .. $row_max ) {
for my $col ($col_min .. $col_max ) {
my $value = $worksheet_R->get_cell($row, $col)->value;
$worksheet_W->write($row, $col, $value);
}
}
}
@zdim спасибо за ссылку. Я попробую несколько вариантов и посмотрю, сохраняет ли он цвет.
OK. Обратите внимание, что на той же странице есть другой ответ, где они действительно используют вашу комбинацию. Но тогда это разные модули; Я не уверен, что готов поспорить, что писатель получит от читателя все.
Я думаю, что вам не нужен модуль
WriteExcel
для того, что вы делаете, а нужен толькоSpreadsheet::ParseExcel::SaveParser
. См., Например, эта почта. Это может сохранить цвета. В противном случае существует ряд вариантов, включающих цвета, поэтому вы должны иметь возможность прочитать, что они собой представляют, а затем указать их снова.