0

伙计们,

我正在尝试删除已经存在的 excel 文件中使用的行

我试过下面的代码

use strict;
use warnings;
use Win32::OLE;

my $xl = Win32::OLE->new('Excel.Application');
$xl->{Visible} = 0;
my $nShtsOld = $xl->{SheetsInOldWorkbook};
$xl->{SheetsInOldWorkbook} = 1;
my $wb = $xl->Workbooks->Open('C:\Users\u304079\Desktop\Test_S1_Legacy_US.xlsx');
$xl->{SheetsInOldWorkbook} = $nShtsOld;
my $sht = $wb->Sheets(o);
my $end = $sht->Usedrange->Row->Count;
print $end;

for (my $count = $end; 0 < $count; $count--) 
{
    my $cell = $sht->{Cells};
    if (!defined $cell->{Value}) 
    {
    $cell->entireRow->delete;

    } 
}

# save and exit
        $xl->SaveAs('C:\Users\u304079\Desktop\Test_S1_Legacy_US.xlsx');
        $xl->close();

但是我无法处理以下代码获取错误消息,因为无法在未定义的值上调用方法“Usedrange””

4

1 回答 1

0

看起来my $sht = $wb->Sheets(o);可能是一个错字。那应该是零0吗?

于 2013-10-08T12:20:48.483 回答