尝试使用以下代码插入空行时
我的$ StartRow =“101”;我的$ StartCol =“1”;
$片状个细胞($ STARTROW,$ StartCol) - > EntireRow->插入;
发生错误:Win32 :: OLE(0.1709)错误0x800a03ec 在METHOD / PROPERTYGET“Cells”中,位于1_SPNV3G_WSS-MGW_1_0_Chicago.pl第1732行。
Win32 :: OLE(0.1709)错误0x80010108:“调用的对象已断开连接 来自其客户“ 在METHOD / PROPERTYGET“关闭”1_SPNV3G_WSS-MGW_1_0_Chicago.pl第6310行。
如果我直接给出这些值,则没有发现问题。
$片状个细胞(101,1) - > EntireRow->插入;
有什么想法吗?
P.S。我指的是插入行的这个线程。 http://www.perlmonks.org/?node_id=882700
答案 0 :(得分:1)
因为,Perl动态地推断出变量的类型。变量$StartRow
和$StartCol
被视为字符串,因为您将其指定值括在引号中。删除引号,他们将工作,因为'细胞' method期望整数作为参数。或尝试
$StartRow = int ($StartRow);
$StartCol = int ($StartCol);
这应该有效。我最近在这样做时遇到了这个
my ($i, $j) = split (/\s*,\s*/, $address);
print "\n".$sheet->Cells($i, $j)->{Value};
此处,拆分操作返回的值被视为字符串。然后我将它们转换为整数并且它有效。