Здравствуйте!
Есть "шаблон" репората в Excel, использую
Spreadsheet::ParseExcel::SaveParser, все отлично...за исключение переноса текста. В чем соль?
В Ехселе в формат ячейки выставлен верно — бордюр, цвет сохраняется, а вот перенос не работает
#!/usr/bin/perl
use DBI;
use Try::Tiny;
use Encode;
use UUID::Generator::PurePerl;
use Spreadsheet::WriteExcel;
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::SaveParser;
my $ret;
my $spool = "/var/spool/zzz/";
my $db="192.168.0.67";
my $dbsid="fancy";
my $dbuser="SRC";
my $dbpass="Src67";
my $str_request = "
select
.....запрос к ораклиной базе........
";
Encode::from_to($str_request,'utf8','cp1251');
try
{
$db = DBI->connect("dbi:Oracle:sid=SRC.WORLD", $dbuser, $dbpass);
$sql0=$db->prepare(qq{$str_request});
$sql0->execute();
$ug = UUID::Generator::PurePerl->new();
$uuid1 = $ug->generate_v1();
my $file = $uuid1->as_string() . ".xls";
my $parser = Spreadsheet::ParseExcel::SaveParser->new();
my $template = $parser->Parse('template.xls');
my $worksheet = $template->worksheet(0);
my $format1 = $template->{Worksheet}[$sheet]
->{Cells}[9][0]
->{FormatNo};
my $row_num = 9;
my $num = 1;
while(@row=$sql0->fetchrow_array)
{
my $tmp1 = $row[1];
Encode::from_to($tmp1,'cp1251','unicode');
$worksheet->AddCell( $row, 0, $tmp1, $format1 );
$row = $row + 1;
}
$template->SaveAs($spool . "file.xls");
$ret = $file;
}
catch
{
$ret = "0x0";
};
print $ret;