diff --git a/Classes/PHPExcel/Reader/HTML.php b/Classes/PHPExcel/Reader/HTML.php index 4780a9557..8a3bf045b 100644 --- a/Classes/PHPExcel/Reader/HTML.php +++ b/Classes/PHPExcel/Reader/HTML.php @@ -126,19 +126,19 @@ protected function _isValidFormat() } /** - * Loads PHPExcel from file + * Loads PHPExcel from file or from HTML Data * - * @param string $pFilename + * @param string $pHtmlData * @return PHPExcel * @throws PHPExcel_Reader_Exception */ - public function load($pFilename) + public function load($pHtmlData) { // Create new PHPExcel $objPHPExcel = new PHPExcel(); // Load into this instance - return $this->loadIntoExisting($pFilename, $objPHPExcel); + return $this->loadIntoExisting($pHtmlData, $objPHPExcel); } /** @@ -397,23 +397,28 @@ private function _processDomElement(DOMNode $element, $sheet, &$row, &$column, & } /** - * Loads PHPExcel from file into PHPExcel instance + * Loads PHPExcel from file or from HTML data into PHPExcel instance * * @param string $pFilename * @param PHPExcel $objPHPExcel * @return PHPExcel * @throws PHPExcel_Reader_Exception */ - public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) + public function loadIntoExisting($pHtmlData, PHPExcel $objPHPExcel) { - // Open file to validate - $this->_openFile($pFilename); - if (!$this->_isValidFormat()) { + $isHtmlFile = FALSE; + if(is_file($pHtmlData)){ + $isHtmlFile = TRUE; + // Open file to validate + $this->_openFile($pHtmlData); + if (!$this->_isValidFormat()) { + fclose ($this->_fileHandle); + throw new PHPExcel_Reader_Exception($pHtmlData . " is an Invalid HTML file."); + } + // Close after validating fclose ($this->_fileHandle); - throw new PHPExcel_Reader_Exception($pFilename . " is an Invalid HTML file."); } - // Close after validating - fclose ($this->_fileHandle); + // Create new PHPExcel while ($objPHPExcel->getSheetCount() <= $this->_sheetIndex) { @@ -424,15 +429,19 @@ public function loadIntoExisting($pFilename, PHPExcel $objPHPExcel) // Create a new DOM object $dom = new domDocument; // Reload the HTML file into the DOM object - $loaded = $dom->loadHTMLFile($pFilename); + if($isHtmlFile){ + $loaded = $dom->loadHTMLFile($pHtmlData); + }else{ + $loaded = $dom->loadHTML($pHtmlData); + } + if ($loaded === FALSE) { - throw new PHPExcel_Reader_Exception('Failed to load ',$pFilename,' as a DOM Document'); + throw new PHPExcel_Reader_Exception('Failed to load ',$pHtmlData,' as a DOM Document'); } // Discard white space $dom->preserveWhiteSpace = false; - $row = 0; $column = 'A'; $content = '';