芝麻web文件管理V1.00
编辑当前文件:/home/a/s/m/asmplong/www/asm/class/PHPExcel/Reader/CSV.php
_inputEncoding = 'UTF-8'; $this->_delimiter = ','; $this->_enclosure = '"'; $this->_lineEnding = PHP_EOL; $this->_sheetIndex = 0; $this->_readFilter = new PHPExcel_Reader_DefaultReadFilter(); } /** * Can the current PHPExcel_Reader_IReader read the file? * * @param string $pFileName * @return boolean */ public function canRead($pFilename) { // Check if file exists if (!file_exists($pFilename)) { throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); } return true; } /** * Loads PHPExcel from file * * @param string $pFilename * @throws Exception */ public function load($pFilename) { // Create new PHPExcel $objPHPExcel = new PHPExcel(); // Load into this instance return $this->loadIntoExisting($pFilename, $objPHPExcel); } /** * Read filter * * @return PHPExcel_Reader_IReadFilter */ public function getReadFilter() { return $this->_readFilter; } /** * Set read filter * * @param PHPExcel_Reader_IReadFilter $pValue */ public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { $this->_readFilter = $pValue; } /** * Set input encoding * * @param string $pValue Input encoding */ public function setInputEncoding($pValue = 'UTF-8') { $this->_inputEncoding = $pValue; } /** * Get input encoding * * @return string */ public function getInputEncoding() { return $this->_inputEncoding; } /** * Loads PHPExcel from file into PHPExcel instance * * @param string $pFilename * @param PHPExcel $objPHPExcel * @throws Exception */ public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) { // Check if file exists if (!file_exists($pFilename)) { throw new Exception("Could not open " . $pFilename . " for reading! File does not exist."); } // Create new PHPExcel while ($objPHPExcel->getSheetCount() <= $this->_sheetIndex) { $objPHPExcel->createSheet(); } $objPHPExcel->setActiveSheetIndex( $this->_sheetIndex ); // Open file $fileHandle = fopen($pFilename, 'r'); if ($fileHandle === false) { throw new Exception("Could not open file $pFilename for reading."); } // Skip BOM, if any switch ($this->_inputEncoding) { case 'UTF-8': fgets($fileHandle, 4) == "\xEF\xBB\xBF" ? fseek($fileHandle, 3) : fseek($fileHandle, 0); break; default: break; } // Loop through file $currentRow = 0; $rowData = array(); while (($rowData = fgetcsv($fileHandle, 0, $this->_delimiter, $this->_enclosure)) !== FALSE) { ++$currentRow; $rowDataCount = count($rowData); for ($i = 0; $i < $rowDataCount; ++$i) { $columnLetter = PHPExcel_Cell::stringFromColumnIndex($i); if ($rowData[$i] != '' && $this->_readFilter->readCell($columnLetter, $currentRow)) { // Unescape enclosures $rowData[$i] = str_replace("\\" . $this->_enclosure, $this->_enclosure, $rowData[$i]); $rowData[$i] = str_replace($this->_enclosure . $this->_enclosure, $this->_enclosure, $rowData[$i]); // Convert encoding if necessary if ($this->_inputEncoding !== 'UTF-8') { $rowData[$i] = PHPExcel_Shared_String::ConvertEncoding($rowData[$i], 'UTF-8', $this->_inputEncoding); } // Set cell value $objPHPExcel->getActiveSheet()->setCellValue( $columnLetter . $currentRow, $rowData[$i] ); } } } // Close file fclose($fileHandle); // 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 line ending * * @return string */ public function getLineEnding() { return $this->_lineEnding; } /** * Set line ending * * @param string $pValue Line ending, defaults to OS line ending (PHP_EOL) * @return PHPExcel_Reader_CSV */ public function setLineEnding($pValue = PHP_EOL) { $this->_lineEnding = $pValue; return $this; } /** * Get sheet index * * @return int */ public function getSheetIndex() { return $this->_sheetIndex; } /** * Set sheet index * * @param int $pValue Sheet index * @return PHPExcel_Reader_CSV */ public function setSheetIndex($pValue = 0) { $this->_sheetIndex = $pValue; return $this; } }