mirror of
https://github.com/retailcrm/PHPExcel.git
synced 2024-11-23 05:46:06 +03:00
Fixes for CSV Reader read contiguous row numbering
git-svn-id: https://phpexcel.svn.codeplex.com/svn/trunk@64772 2327b42d-5241-43d6-9e2a-de5ac946f064
This commit is contained in:
parent
f1e413bcc1
commit
756e587bc9
@ -92,6 +92,15 @@ class PHPExcel_Reader_CSV implements PHPExcel_Reader_IReader
|
|||||||
*/
|
*/
|
||||||
private $_contiguous;
|
private $_contiguous;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Row counter for loading rows contiguously
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
private $_contiguousRow;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHPExcel_Reader_IReadFilter instance
|
* PHPExcel_Reader_IReadFilter instance
|
||||||
*
|
*
|
||||||
@ -111,6 +120,7 @@ class PHPExcel_Reader_CSV implements PHPExcel_Reader_IReader
|
|||||||
$this->_sheetIndex = 0;
|
$this->_sheetIndex = 0;
|
||||||
$this->_readFilter = new PHPExcel_Reader_DefaultReadFilter();
|
$this->_readFilter = new PHPExcel_Reader_DefaultReadFilter();
|
||||||
$this->_contiguous = false;
|
$this->_contiguous = false;
|
||||||
|
$this->_contiguousRow = -1;
|
||||||
} // function __construct()
|
} // function __construct()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -235,11 +245,13 @@ class PHPExcel_Reader_CSV implements PHPExcel_Reader_IReader
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Loop through file
|
// Loop through file
|
||||||
$currentRow = $contiguousRow = 0;
|
$currentRow = 0;
|
||||||
|
if ($this->_contiguousRow == -1) {
|
||||||
|
$this->_contiguousRow = $objPHPExcel->getActiveSheet()->getHighestRow();
|
||||||
|
}
|
||||||
$rowData = array();
|
$rowData = array();
|
||||||
while (($rowData = fgetcsv($fileHandle, 0, $this->_delimiter, $this->_enclosure)) !== FALSE) {
|
while (($rowData = fgetcsv($fileHandle, 0, $this->_delimiter, $this->_enclosure)) !== FALSE) {
|
||||||
++$currentRow;
|
++$currentRow;
|
||||||
$crset = false;
|
|
||||||
$rowDataCount = count($rowData);
|
$rowDataCount = count($rowData);
|
||||||
$columnLetter = 'A';
|
$columnLetter = 'A';
|
||||||
for ($i = 0; $i < $rowDataCount; ++$i) {
|
for ($i = 0; $i < $rowDataCount; ++$i) {
|
||||||
@ -253,12 +265,8 @@ class PHPExcel_Reader_CSV implements PHPExcel_Reader_IReader
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($this->_contiguous) {
|
if ($this->_contiguous) {
|
||||||
if (!$crset) {
|
|
||||||
++$contiguousRow;
|
|
||||||
$crset = true;
|
|
||||||
}
|
|
||||||
// Set cell value
|
// Set cell value
|
||||||
$objPHPExcel->getActiveSheet()->getCell($columnLetter . $contiguousRow)->setValue($rowData[$i]);
|
$objPHPExcel->getActiveSheet()->getCell($columnLetter . $this->_contiguousRow)->setValue($rowData[$i]);
|
||||||
} else {
|
} else {
|
||||||
// Set cell value
|
// Set cell value
|
||||||
$objPHPExcel->getActiveSheet()->getCell($columnLetter . $currentRow)->setValue($rowData[$i]);
|
$objPHPExcel->getActiveSheet()->getCell($columnLetter . $currentRow)->setValue($rowData[$i]);
|
||||||
@ -266,6 +274,7 @@ class PHPExcel_Reader_CSV implements PHPExcel_Reader_IReader
|
|||||||
}
|
}
|
||||||
++$columnLetter;
|
++$columnLetter;
|
||||||
}
|
}
|
||||||
|
++$this->_contiguousRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close file
|
// Close file
|
||||||
@ -374,7 +383,11 @@ class PHPExcel_Reader_CSV implements PHPExcel_Reader_IReader
|
|||||||
*/
|
*/
|
||||||
public function setContiguous($contiguous = false)
|
public function setContiguous($contiguous = false)
|
||||||
{
|
{
|
||||||
$this->_contiguous = $contiguous;
|
$this->_contiguous = (bool)$contiguous;
|
||||||
|
if (!$contiguous) {
|
||||||
|
$this->_contiguousRow = -1;
|
||||||
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
} // function setInputEncoding()
|
} // function setInputEncoding()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user