0

尝试使用以下代码插入空行时

我的 $StartRow = "101"; 我的 $StartCol = "1";

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

发生错误:1_SPNV3G_WSS-MGW_1_0_Chicago.pl 第 1732 行的 METHOD/PROPERTYGET“单元格”中的 Win32::OLE(0.1709) 错误 0x800a03ec。

Win32::OLE(0.1709) 错误 0x80010108:在 1_SPNV3G_WSS-MGW_1_0_Chicago.pl 第 6310 行的 METHOD/PROPERTYGET“关闭”中“调用的对象已与其客户端断开连接”。

就好像我直接给出值一样,没有观察到问题。

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

有什么想法吗?

PS我指的是插入行的这个线程。http://www.perlmonks.org/?node_id=882700

4

1 回答 1

1

因为,Perl 动态地推断变量的类型。变量$StartRow$StartCol被视为字符串,因为您将它们的分配值括在引号中。删除引号,它们会起作用,因为 'Cells' 方法需要整数作为参数。或尝试

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

这应该有效。我最近在这样做时遇到了这个

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

在这里,从拆分操作返回的值被视为字符串。然后我将它们转换为整数并且它起作用了。

于 2014-06-19T09:37:54.547 回答