PHPExcel函数getHighestRow()不适用于.xls但适用于.xlsx

时间:2014-03-01 19:27:36

标签: php phpexcel

我正在使用 PHPExcel 根据当前的行数读取其内容。

要查找我正在使用以下功能的行数。

$objSheet->getHighestRow();

它适用于.xlsx文件。

在.xls中工作。

  

致命错误:在非对象

上调用成员函数getHighestRow()

那我怎么能得到没有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和amp; .xlsx得到支持......请指导我。

1 个答案:

答案 0 :(得分: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);