2013-10-24 33 views
-4

下面是我的代碼:的Perl:方法寫,write_string不工作

use Spreadsheet::WriteExcel; 
my @worksheet ; 
my($server_count) = 0; 
my($row) = 0; 
$worksheet[$server_count] = $workbook->addworksheet("Break Summary"); 

$worksheet[$server_count]->set_column(0, 0, 60); 
$worksheet[$server_count]->set_column(1, 1, 20); 

$worksheet[$server_count]->write_string($row, 0, "PositionsSTB" ,$summary_title_format); 
$worksheet[$server_count]->write_string(++$row, 0, "Number of distinct accounts breaking" ,$general_format); 
&log_info ("\nPOS 0 $break_summary_excel_results[0]"); 
$worksheet[$server_count]->write_number($row, 1, $break_summary_excel_results[0] ,$general_format); 

它打印的信息進行記錄,但沒有到Excel中。

+0

那實際上是你的代碼嗎?它會給出一個錯誤,因爲你從來沒有分配任何東西到$ workbook – ikegami

+0

不,我有它︰my $ workbook = Spreadsheet :: WriteExcel-> new($ gloss_audit。$ file_name); – user2843135

回答

1

你的代碼實際上適用於我(對你的示例中未定義的「$ format」變量稍作修改)。這裏是我的整個測試文件:

#! /usr/bin/perl 
use Spreadsheet::WriteExcel; 

my @worksheet; 
my $server_count = 0; 
my $row = 0; 

my $workbook = Spreadsheet::WriteExcel->new('excel_file.xls'); 

my $format = $workbook->add_format(); 
$format->set_bold(); 
$format->set_color('red'); 
$format->set_align('center'); 

$worksheet[$server_count] = $workbook->addworksheet("Break Summary"); 

$worksheet[$server_count]->set_column(0, 0, 60); 
$worksheet[$server_count]->set_column(1, 1, 20); 

$worksheet[$server_count]->write_string($row, 0, "PositionsSTB" ,$format); 
$worksheet[$server_count]->write_string(++$row, 0, "Number of distinct accounts breaking"); 
$worksheet[$server_count]->write_number($row, 1, $break_summary_excel_results[0] ,$general_format); 

我使用電子表格::在Linux WriteExcel版本2.37。在我的情況下,上面代碼的輸出是長度爲5632字節,帶有1個工作表(「Break Summary」)的Excel文件「excel_file.xls」和3個單元格:

A1:「PositionsSTB」(居中,紅色,粗體) A2: 「不同的賬戶打破數」(不specjal格式) B2:0(無specjal格式)

也許你shoule在你的代碼的末尾添加$workbook->close;

希望它有幫助。