M
M
MaxEpt2015-10-06 23:02:56
PHP
MaxEpt, 2015-10-06 23:02:56

Why, when opening a file through phpexcel line by line, some lines come empty?

Good evening, I'm trying to process an excel file as in the example habrahabr.ru/sandbox/38469

<?
set_time_limit(1800);
ini_set('memory_liit', '128M');
/*	some vars	*/
$chunkSize = 20;		//размер считываемых строк за раз
$startRow = 2;			//начинаем читать со строки 2, в PHPExcel первая строка имеет индекс 1, и как правило это строка заголовков
$exit = false;			//флаг выхода
$empty_value = 0;		//счетчик пустых знаений
/*	some vars	*/

$file=$_SERVER['DOCUMENT_ROOT'].'/upload/d5c/price_test.xls';
$objReader = PHPExcel_IOFactory::createReaderForFile($file);
//var_dump(file_exists($file));
//$inputFileType = 'Excel2007'; 
//echo "<pre>".print_r($inputFileType,1)."</pre>";

//$objReader->setReadDataOnly(true);
$validLocale = PHPExcel_Settings::setLocale('ru');
$chunkFilter = new chunkReadFilter(); 
$objReader->setReadFilter($chunkFilter); 
//внешний цикл, пока файл не кончится
while ( !$exit ) 
{
  $chunkFilter->setRows($startRow,$chunkSize); 	//устанавливаем знаечние фильтра
  //$objPHPExcel = new PHPExcel;
  $objPHPExcel = $objReader->load($file);		//открываем файл
  $objPHPExcel->setActiveSheetIndex(0);		//устанавливаем индекс активной страницы
  $objWorksheet = $objPHPExcel->getActiveSheet();	//делаем активной нужную страницу
  for ($i = $startRow; $i < $startRow + $chunkSize; $i++) 	//внутренний цикл по строкам
  {
    //$value=$objWorksheet->getCell('B52')->getValue();
    $value = $objWorksheet->getCellByColumnAndRow(0, $i)->getValue();		//получаем первое знаение в строке
    
    echo "<pre>".print_r($value,1)."</pre>";

    //die();	
    /*Манипуляции с данными каким Вам угодно способом, в PHPExcel их превеликое множество*/
  }

  $objPHPExcel->disconnectWorksheets(); 				//чистим 
  unset($objPHPExcel); 						//память
  $startRow += $chunkSize;					//переходим на следующий шаг цикла, увеличивая строку, с которой будем читать файл
  $exit=false;
    //echo "<pre>".print_r($value,1)."</pre>";
  //die();
}


?>

Displays all value empty... Naturally, they are filled in the excel file.

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question