Forum Webscript.Ru

Программирование => Perl => Тема начата: Biggelow от 05 Июля 2007, 10:37:47

Название: Spreadsheet::ParseExcel
Отправлено: Biggelow от 05 Июля 2007, 10:37:47
Столкнулся с такой проблемой, если не находит ячейки то цикл завершает, как это предотвартить, чтлб он дальше продолжал.

Пишет такую ошибку: Can\'t call method "Value" on an undefined value

for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++)
{
   my $oWkS = $oBook->{Worksheet}[$oBook->{SheetCount}];
   
   $q = "insert into `$CatalogTable` (`title`) ";
   $q.= "values (\'".$oWkS->{Name}."\')";
   &mysql_query($q, $dbh);
   
   
   my $q = "select * from `$CatalogTable` where `title` = \'".$oWkS->{Name}."\' ";
   my $r = mysql_query($q, $dbh);
   @data = $r->fetchrow_array;
   $path=@data[0];
   $r->finish();
   
      
   $oWkS->{MaxRow} ||= $oWkS->{MinRow};
   foreach my $iR ($oWkS->{MinRow}+3 .. $oWkS->{MaxRow}) {
         my $title=$oWkS->{Cells}[$iR][1]->Value;
         my $nomer=$oWkS->{Cells}[$iR][0]->Value;
         if($title ne "" && $title ne "Наименование" && $nomer){
            my $q = "insert into `$RecordsTable` (`title`,`path`) ";
            $q.= "values (\'".$title."\',\'".$path."\')";
            &mysql_query($q, $dbh);
         }
   }
   
}
Название: Spreadsheet::ParseExcel
Отправлено: Biggelow от 06 Июля 2007, 07:02:12
Решил проблему! Надо ячейку на существование проверять:
if($oWkS->{Cells}[$iR][2]->{Val}){
               $n1=$oWkS->{Cells}[$iR][2]->Value;
            }