2013-07-03 36 views
0

山坳號當嘗試使用下面的代碼Perl的Excel中 - 插入一個空行與行,從vairable

我的$ STARTROW =「101」來插入一個空行;我的$ StartCol =「1」;

$ Sheet-> Cells($ StartRow,$ StartCol) - > EntireRow-> Insert;

出錯:的Win32 :: OLE(0.1709)錯誤0x800a03ec 在METHOD/PROPERTYGET 「細胞」 在1_SPNV3G_WSS-MGW_1_0_Chicago.pl線1732

的Win32 :: OLE(0.1709)錯誤0x80010108「調用的對象已斷開 來自其客戶」的 在方法/ PROPERTYGET「關閉」在1_SPNV3G_WSS-MGW_1_0_Chicago.pl線6310

在哪裏,如果我直接給出的值,沒有問題觀察d。

$ Sheet-> Cells(101,1) - > EntireRow-> Insert;

有什麼想法?

P.S.我指的是插入行的這個線程。 http://www.perlmonks.org/?node_id=882700

+0

如何將雙引號更改爲單引號。 –

+0

nope ...單引號沒有幫助:( – Siva

回答

1

因爲,Perl會動態地推斷變量的類型。變量$StartRow$StartCol被視爲字符串,因爲您將它們的指定值括在引號中。刪除引號,他們將工作,因爲「單元格」方法期望整數作爲參數。或嘗試

$StartRow = int ($StartRow); 
$StartCol = int ($StartCol); 

這應該有效。我這樣做最近遇到這個

my ($i, $j) = split (/\s*,\s*/, $address); 
print "\n".$sheet->Cells($i, $j)->{Value}; 

這裏從分割操作返回的值被視爲字符串。然後我將它們轉換爲整數並且工作。