Answer the question
In order to leave comments, you need to log in
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();
}
?>
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question