[Perl] Text wrap
От: _ASD_  
Дата: 25.11.14 04:27
Оценка:
Здравствуйте!
Есть "шаблон" репората в 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;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.