class PHPExcel_Reader_CSV in Loft Data Grids 6.2
Same name and namespace in other branches
- 7.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Reader/CSV.php \PHPExcel_Reader_CSV
PHPExcel_Reader_CSV
@category PHPExcel @package PHPExcel_Reader @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
Hierarchy
- class \PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader
- class \PHPExcel_Reader_CSV implements PHPExcel_Reader_IReader
Expanded class hierarchy of PHPExcel_Reader_CSV
File
- vendor/
phpoffice/ phpexcel/ Classes/ PHPExcel/ Reader/ CSV.php, line 45
View source
class PHPExcel_Reader_CSV extends PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader {
/**
* Input encoding
*
* @access private
* @var string
*/
private $_inputEncoding = 'UTF-8';
/**
* Delimiter
*
* @access private
* @var string
*/
private $_delimiter = ',';
/**
* Enclosure
*
* @access private
* @var string
*/
private $_enclosure = '"';
/**
* Sheet index to read
*
* @access private
* @var int
*/
private $_sheetIndex = 0;
/**
* Load rows contiguously
*
* @access private
* @var int
*/
private $_contiguous = false;
/**
* Row counter for loading rows contiguously
*
* @var int
*/
private $_contiguousRow = -1;
/**
* Create a new PHPExcel_Reader_CSV
*/
public function __construct() {
$this->_readFilter = new PHPExcel_Reader_DefaultReadFilter();
}
/**
* Validate that the current file is a CSV file
*
* @return boolean
*/
protected function _isValidFormat() {
return TRUE;
}
/**
* Set input encoding
*
* @param string $pValue Input encoding
*/
public function setInputEncoding($pValue = 'UTF-8') {
$this->_inputEncoding = $pValue;
return $this;
}
/**
* Get input encoding
*
* @return string
*/
public function getInputEncoding() {
return $this->_inputEncoding;
}
/**
* Move filepointer past any BOM marker
*
*/
protected function _skipBOM() {
rewind($this->_fileHandle);
switch ($this->_inputEncoding) {
case 'UTF-8':
fgets($this->_fileHandle, 4) == "" ? fseek($this->_fileHandle, 3) : fseek($this->_fileHandle, 0);
break;
case 'UTF-16LE':
fgets($this->_fileHandle, 3) == "" ? fseek($this->_fileHandle, 2) : fseek($this->_fileHandle, 0);
break;
case 'UTF-16BE':
fgets($this->_fileHandle, 3) == "" ? fseek($this->_fileHandle, 2) : fseek($this->_fileHandle, 0);
break;
case 'UTF-32LE':
fgets($this->_fileHandle, 5) == "" ? fseek($this->_fileHandle, 4) : fseek($this->_fileHandle, 0);
break;
case 'UTF-32BE':
fgets($this->_fileHandle, 5) == "" ? fseek($this->_fileHandle, 4) : fseek($this->_fileHandle, 0);
break;
default:
break;
}
}
/**
* Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns)
*
* @param string $pFilename
* @throws PHPExcel_Reader_Exception
*/
public function listWorksheetInfo($pFilename) {
// Open file
$this
->_openFile($pFilename);
if (!$this
->_isValidFormat()) {
fclose($this->_fileHandle);
throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file.");
}
$fileHandle = $this->_fileHandle;
// Skip BOM, if any
$this
->_skipBOM();
$escapeEnclosures = array(
"\\" . $this->_enclosure,
$this->_enclosure . $this->_enclosure,
);
$worksheetInfo = array();
$worksheetInfo[0]['worksheetName'] = 'Worksheet';
$worksheetInfo[0]['lastColumnLetter'] = 'A';
$worksheetInfo[0]['lastColumnIndex'] = 0;
$worksheetInfo[0]['totalRows'] = 0;
$worksheetInfo[0]['totalColumns'] = 0;
// Loop through each line of the file in turn
while (($rowData = fgetcsv($fileHandle, 0, $this->_delimiter, $this->_enclosure)) !== FALSE) {
$worksheetInfo[0]['totalRows']++;
$worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], count($rowData) - 1);
}
$worksheetInfo[0]['lastColumnLetter'] = PHPExcel_Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']);
$worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1;
// Close file
fclose($fileHandle);
return $worksheetInfo;
}
/**
* Loads PHPExcel from file
*
* @param string $pFilename
* @return PHPExcel
* @throws PHPExcel_Reader_Exception
*/
public function load($pFilename) {
// Create new PHPExcel
$objPHPExcel = new PHPExcel();
// Load into this instance
return $this
->loadIntoExisting($pFilename, $objPHPExcel);
}
/**
* Loads PHPExcel from file into PHPExcel instance
*
* @param string $pFilename
* @param PHPExcel $objPHPExcel
* @return PHPExcel
* @throws PHPExcel_Reader_Exception
*/
public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) {
$lineEnding = ini_get('auto_detect_line_endings');
ini_set('auto_detect_line_endings', true);
// Open file
$this
->_openFile($pFilename);
if (!$this
->_isValidFormat()) {
fclose($this->_fileHandle);
throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid Spreadsheet file.");
}
$fileHandle = $this->_fileHandle;
// Skip BOM, if any
$this
->_skipBOM();
// Create new PHPExcel object
while ($objPHPExcel
->getSheetCount() <= $this->_sheetIndex) {
$objPHPExcel
->createSheet();
}
$sheet = $objPHPExcel
->setActiveSheetIndex($this->_sheetIndex);
$escapeEnclosures = array(
"\\" . $this->_enclosure,
$this->_enclosure . $this->_enclosure,
);
// Set our starting row based on whether we're in contiguous mode or not
$currentRow = 1;
if ($this->_contiguous) {
$currentRow = $this->_contiguousRow == -1 ? $sheet
->getHighestRow() : $this->_contiguousRow;
}
// Loop through each line of the file in turn
while (($rowData = fgetcsv($fileHandle, 0, $this->_delimiter, $this->_enclosure)) !== FALSE) {
$columnLetter = 'A';
foreach ($rowData as $rowDatum) {
if ($rowDatum != '' && $this->_readFilter
->readCell($columnLetter, $currentRow)) {
// Unescape enclosures
$rowDatum = str_replace($escapeEnclosures, $this->_enclosure, $rowDatum);
// Convert encoding if necessary
if ($this->_inputEncoding !== 'UTF-8') {
$rowDatum = PHPExcel_Shared_String::ConvertEncoding($rowDatum, 'UTF-8', $this->_inputEncoding);
}
// Set cell value
$sheet
->getCell($columnLetter . $currentRow)
->setValue($rowDatum);
}
++$columnLetter;
}
++$currentRow;
}
// Close file
fclose($fileHandle);
if ($this->_contiguous) {
$this->_contiguousRow = $currentRow;
}
ini_set('auto_detect_line_endings', $lineEnding);
// Return
return $objPHPExcel;
}
/**
* Get delimiter
*
* @return string
*/
public function getDelimiter() {
return $this->_delimiter;
}
/**
* Set delimiter
*
* @param string $pValue Delimiter, defaults to ,
* @return PHPExcel_Reader_CSV
*/
public function setDelimiter($pValue = ',') {
$this->_delimiter = $pValue;
return $this;
}
/**
* Get enclosure
*
* @return string
*/
public function getEnclosure() {
return $this->_enclosure;
}
/**
* Set enclosure
*
* @param string $pValue Enclosure, defaults to "
* @return PHPExcel_Reader_CSV
*/
public function setEnclosure($pValue = '"') {
if ($pValue == '') {
$pValue = '"';
}
$this->_enclosure = $pValue;
return $this;
}
/**
* Get sheet index
*
* @return integer
*/
public function getSheetIndex() {
return $this->_sheetIndex;
}
/**
* Set sheet index
*
* @param integer $pValue Sheet index
* @return PHPExcel_Reader_CSV
*/
public function setSheetIndex($pValue = 0) {
$this->_sheetIndex = $pValue;
return $this;
}
/**
* Set Contiguous
*
* @param boolean $contiguous
*/
public function setContiguous($contiguous = FALSE) {
$this->_contiguous = (bool) $contiguous;
if (!$contiguous) {
$this->_contiguousRow = -1;
}
return $this;
}
/**
* Get Contiguous
*
* @return boolean
*/
public function getContiguous() {
return $this->_contiguous;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PHPExcel_Reader_Abstract:: |
protected | property | ||
PHPExcel_Reader_Abstract:: |
protected | property | * Read charts that are defined in the workbook? * Identifies whether the Reader should read the definitions for any charts that exist in the workbook; * * | |
PHPExcel_Reader_Abstract:: |
protected | property | * Restrict which sheets should be loaded? * This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded. * * | |
PHPExcel_Reader_Abstract:: |
protected | property | * Read data only? * Identifies whether the Reader should only read data values for cells, and ignore any formatting information; * or whether it should read both data and formatting * * | |
PHPExcel_Reader_Abstract:: |
protected | property | * PHPExcel_Reader_IReadFilter instance * * | |
PHPExcel_Reader_Abstract:: |
public | function |
* Can the current PHPExcel_Reader_IReader read the file?
*
* Overrides PHPExcel_Reader_IReader:: |
5 |
PHPExcel_Reader_Abstract:: |
public | function | * Read charts in workbook? * If this is true, then the Reader will include any charts that exist in the workbook. * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. … | |
PHPExcel_Reader_Abstract:: |
public | function | * Get which sheets to load * Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null * indicating that all worksheets in the workbook should be loaded. * * | |
PHPExcel_Reader_Abstract:: |
public | function | * Read data only? * If this is true, then the Reader will only read data values for cells, it will not read any formatting information. * If false (the default) it will read data and formatting. * * | |
PHPExcel_Reader_Abstract:: |
public | function | * Read filter * * | |
PHPExcel_Reader_Abstract:: |
public | function | * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks * * | 1 |
PHPExcel_Reader_Abstract:: |
public | function | * Scan theXML for use of <!ENTITY to prevent XXE/XEE attacks * * | |
PHPExcel_Reader_Abstract:: |
public | function | * Set read charts in workbook * Set to true, to advise the Reader to include any charts that exist in the workbook. * Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. … | |
PHPExcel_Reader_Abstract:: |
public | function | * Set all sheets to load * Tells the Reader to load all worksheets from the workbook. * * | |
PHPExcel_Reader_Abstract:: |
public | function | * Set which sheets to load * * | |
PHPExcel_Reader_Abstract:: |
public | function | * Set read data only * Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information. * Set to false (the default) to advise the Reader to read both data and formatting for cells. * * | |
PHPExcel_Reader_Abstract:: |
public | function | * Set read filter * * | |
PHPExcel_Reader_Abstract:: |
protected | function | * Open file for reading * * | |
PHPExcel_Reader_CSV:: |
private | property | * Load rows contiguously * * @access private * | |
PHPExcel_Reader_CSV:: |
private | property | * Row counter for loading rows contiguously * * | |
PHPExcel_Reader_CSV:: |
private | property | * Delimiter * * @access private * | |
PHPExcel_Reader_CSV:: |
private | property | * Enclosure * * @access private * | |
PHPExcel_Reader_CSV:: |
private | property | * Input encoding * * @access private * | |
PHPExcel_Reader_CSV:: |
private | property | * Sheet index to read * * @access private * | |
PHPExcel_Reader_CSV:: |
public | function | * Get Contiguous * * | |
PHPExcel_Reader_CSV:: |
public | function | * Get delimiter * * | |
PHPExcel_Reader_CSV:: |
public | function | * Get enclosure * * | |
PHPExcel_Reader_CSV:: |
public | function | * Get input encoding * * | |
PHPExcel_Reader_CSV:: |
public | function | * Get sheet index * * | |
PHPExcel_Reader_CSV:: |
public | function | * Return worksheet info (Name, Last Column Letter, Last Column Index, Total Rows, Total Columns) * * | |
PHPExcel_Reader_CSV:: |
public | function |
* Loads PHPExcel from file
*
* Overrides PHPExcel_Reader_IReader:: |
|
PHPExcel_Reader_CSV:: |
public | function | * Loads PHPExcel from file into PHPExcel instance * * | |
PHPExcel_Reader_CSV:: |
public | function | * Set Contiguous * * | |
PHPExcel_Reader_CSV:: |
public | function | * Set delimiter * * | |
PHPExcel_Reader_CSV:: |
public | function | * Set enclosure * * | |
PHPExcel_Reader_CSV:: |
public | function | * Set input encoding * * | |
PHPExcel_Reader_CSV:: |
public | function | * Set sheet index * * | |
PHPExcel_Reader_CSV:: |
protected | function | * Validate that the current file is a CSV file * * | |
PHPExcel_Reader_CSV:: |
protected | function | * Move filepointer past any BOM marker * | |
PHPExcel_Reader_CSV:: |
public | function | * Create a new PHPExcel_Reader_CSV |