2011-11-25 68 views
2

我使用Spreadsheet::WriteExcel創建excel並向其中寫入一些數據。 我正在使用merge_range合併某些單元格。 但問題是我下面的代碼沒有合併單元格,但不顯示數據($str內容)。 我無法弄清楚爲什麼????。Spreadsheet :: WriteExcel不使用merge_range在Excel中編寫字符串

請幫我,我哪裏錯了?

下面是我的代碼的一部分:

#!/usr/bin/perl 

use Spreadsheet::WriteExcel; 
use strict; 

my $wb = Spreadsheet::WriteExcel->new('excel_test.xls'); 
my $custom_ws = $wb->add_worksheet('Custom Parameters'); 

my $wb_format_merge = $wb->add_format(); 
$wb_format_merge->set_bold(); 
$wb_format_merge->set_text_wrap(); 
$wb_format_merge->set_border(1); 
$wb_format_merge->set_align('left'); 
$wb_format_merge->set_valign('vcenter'); 

my($row, $coll) = 0; 
my $merge_coll_len = 8; 

###### write data ### 
my $str = "Please select the follwong metrics to generate custom report in Details sheet"; 
$custom_ws->merge_range($row, $coll, $row, $coll + $merge_coll_len, $str,$merge_format); 

$row += 2; 
$custom_ws->write($row, $coll, 'select the data type for the reference'); 

回答

3
my($row, $coll) = 0; 

$coll是不確定的

使用

my($row, $coll)=(0,0);

使用4行,COLL,行,COLL爲merge_range是完全有效的(只要它們具有價值;))

+0

+1:這回答了問題 – Zaid

+0

++正確的答案。 @ kailash19將「使用警告」添加到程序中會引起這種情況。 – jmcnamara

+0

非常感謝,現在正在工作。 – kailash19

2

從我可以在Spreadsheet::WriteExcel文檔例子中看到,該單元格範圍應該作爲一個字符串參數傳遞,但約翰指出,單獨的參數是有效的也是:

對於單個參數的形式,它應該是這樣的:

$custom_ws->merge_range('A1:H1', $str, $merge_format); 

一個想法可能是推出一對夫婦的幫手子程序允許使用這種形式:

sub range { 

    my ($from_row, $from_col) = @{ $_[0] }; 
    my ($to_row, $to_col) = @{ $_[1] }; 

    die "Expecting to go from top-left to bottom-right" 
     if $from_row > $to_row || $from_col > $to_col; 

    return join '', alpha($from_row), $from_col, ':', alpha($to_row), $to_col; 
} 

sub alpha { 
    my $row = 'A'; 
    $row++ for 1 .. +shift; 
    return $row; 
} 

然後調用range

$custom_ws->merge_range(range([ $row, $col ], 
           [ $row, $col + $length ]), 
         $str, 
         $merge_format); 
+0

的merge_range()方法適用於任一$行,$山口風格參數或A1樣式範圍串。另外,還有一些函數可以在Spreadsheet :: WriteExcel :: Utility模塊中的每種類型之間進行轉換。 – jmcnamara

+1

@jmcnamara:爲我提供正確的解決方案 – Zaid

相關問題