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 |