如何修改此perl代码以从.xls文件中获得正确的信息

如何修改此perl代码以从.xls文件中获得正确的信息,perl,Perl,我想用以下条件修改此代码: 输入一个日期,并通知所有事件将在未来三到四个月内发生。。。天。 请帮助我:( !/usr/bin/perl-w 严格使用; 使用电子表格::ParseExcel; my$oExcel=新电子表格::ParseExcel; 除非@ARGV; my$oBook=$oExcel->Parse($ARGV[0]); 我的($iR、$iC、$oWkS、$oWkC); 打印“文件:”,$oBook->{FILE},“\n”; 打印“计数:,$oBook->{SheetCount}

我想用以下条件修改此代码: 输入一个日期,并通知所有事件将在未来三到四个月内发生。。。天。 请帮助我:(

!/usr/bin/perl-w
严格使用;
使用电子表格::ParseExcel;
my$oExcel=新电子表格::ParseExcel;
除非@ARGV;
my$oBook=$oExcel->Parse($ARGV[0]);
我的($iR、$iC、$oWkS、$oWkC);
打印“文件:”,$oBook->{FILE},“\n”;
打印“计数:,$oBook->{SheetCount},”\n;
打印“AUTHOR:,$oBook->{AUTHOR},”\n
如果定义为$oBook->{Author};
对于(my$ISHET=0;$ISHET<$oBook->{SheetCount};$ISHET++)
{
$oWkS=$oBook->{sheet}[$iSheet];
打印“-----------SHEET:”,$oWkS->{Name},“\n”;
对于(my$iR=$oWkS->{MinRow};
定义了$oWkS->{MaxRow}&&$iR{MaxRow};
$iR++)
{
对于(my$iC=$oWkS->{MinCol};
定义了$oWkS->{MaxCol}&&iC{MaxCol};
$iC++)
{
$oWkC=$oWkS->{Cells}[$iR][$iC];
打印“($iR,$iC)=>”,$oWkC->Value,“\n”如果($oWkC);
}
}
}

我猜每一行都是一个事件?如果是这样,请获取特定的列作为日期,而不是每一行的列上的内部循环。如果Excel将其格式化为日期, 您可以通过以下方式执行此操作:

my $dateColumn = 3; # for example; 0 for column A, 1 for B, etc.
my $cell = $oWkS->{'Cells'}[$iR][$dateColumn]
my $date = Spreadsheet::ParseExcel::Utility::ExcelFmt( 'YYYY-MM-DD', $cell->unformatted(), $oBook->{'Flg1904'} );
然后,只需查看您的日期是否在所需范围内,或跳过该行:

next if $date lt '2010-09-13' || $date gt '2010-09-17';

也许你应该在日历中而不是Excel中跟踪事件。做日历上的事情可能没有那么难:)如果我能为我不得不支持的每一次不当使用Excel得到一分钱就好了。我相信我可以让一个有钱人在付清美国国债后退休。
next if $date lt '2010-09-13' || $date gt '2010-09-17';