使用perl删除现有excel文件中的行

时间:2013-10-08 12:13:13

标签: excel perl

人,

我试图删除现有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“

1 个答案:

答案 0 :(得分:0)

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