2014-03-01 103 views
0

我正在使用PHPExcel根據存在的no.of行來讀取其內容。PHPExcel函數getHighestRow()不適用於.xls,但適用於.xlsx

要查找no.of行,我正在使用以下函數。

$objSheet->getHighestRow(); 

它對於.xlsx文件正常工作。

但它是不是在.xls中工作。

Fatal error: Call to a member function getHighestRow() on a non-object

那麼我怎麼能得到no.of行的excel?

PHP代碼:

set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/'); 
    /** PHPExcel_IOFactory */ 
    include 'www/PHPExcelReader/Classes/PHPExcel/IOFactory.php'; 
    include 'www/PHPExcelReader/Classes/PHPExcel/Classes/PHPExcel.php'; 
    try { 
     $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_sqlite3; 
     PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); 
     $objReader = new PHPExcel_Reader_Excel2007(); 
     $objReader->setReadDataOnly(true); 
     $objReader->setLoadSheetsOnly(array("Sheet1")); 
     $objPHPExcel = $objReader->load($inputFileName); 
     $objSheet = $objPHPExcel->getActiveSheet(); 
     $no_of_rows=$objSheet->getHighestRow(); 
     //echo "no_of_rows=$no_of_rows"; 

我想這兩個XLS得到支持&的.xlsx ...請指引我。

+1

PHPExcel getHighestRow()方法不應該在乎細胞是否受到保護!如果是這樣,那麼這是PHPExcel代碼中的一個主要缺陷,需要修復而不是修復。由於本週末我正試圖發佈一個新版本,請問您可以在[PHPExcel codeplex網站](https://phpexcel.codeplex.com/workitem/list/advanced)上提出一個問題,提供一個示例電子表格文件,演示這個問題,以便我可以看看修復它 –

+0

@MarkBaker:我更新錯誤日誌的問題以及..請看看。致命錯誤:調用非對象的成員函數getHighestRow() – logan

+0

這是使用Excel2007閱讀器,Excel5閱讀器還是任何閱讀器? –

回答

1

我自己解決了這個問題。 這是由於excel版本不兼容。

以下是解決此問題的代碼。

/** Identify the type of $inputFileName **/ 
$inputFileType = PHPExcel_IOFactory::identify($inputFileName); 
/** Create a new Reader of the type that has been identified **/ 
$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
+0

是的,這就是爲什麼PHPExcel針對不同格式具有不同讀取器的原因,以及爲什麼PHPExcel_IOFactory類提供了一個identify()方法確定什麼讀者應該用於任何給定的文件,以及一個通用的'load()'方法,它將確定格式並加載它,而不需要識別它 –

+0

@MarkBaker:您能否提供load()的語法? – logan

+0

'load()'的代碼在庫的源代碼中可用,如果你願意的話,你可以看看它是如何工作的;並且有一個完整的文檔詳細說明了在/ Documentation文件夾中或在線閱讀電子表格數據的所有選項:https://github.com/PHPOffice/PHPExcel/wiki/User%20Documentation%20Reading%20Spreadsheet%20Files –

相關問題