PHPExcel函数getHighestRow()不适用于.xls,但适用于.xlsx
我正在使用PHPExcel根据当前行数读取其内容 要查找行数,我使用以下函数PHPExcel函数getHighestRow()不适用于.xls,但适用于.xlsx,php,phpexcel,Php,Phpexcel,我正在使用PHPExcel根据当前行数读取其内容 要查找行数,我使用以下函数 $objSheet->getHighestRow(); 对于.xlsx文件,它工作正常 但它不是在.xls中工作 致命错误:对非对象调用成员函数getHighestRow() 那么我如何获得excel的行数呢 PHP代码: set_include_path(get_include_path() . PATH_SEPARATOR . 'Classes/'); /** PHPExcel_IOFact
$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和.xlsx都得到支持。。。请引导我。我自己解决了这个问题。 这是由于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);
PHPExcel getHighestRow()方法不应该关心单元格是否受到保护!如果是这样,那么它就是PHPExcel代码中的一个主要缺陷,需要修复而不是解决。由于我打算在本周末发布一个新版本,您能否在上对此提出一个问题,提供一个演示此问题的示例电子表格文件,以便我可以查看修复方法it@MarkBaker:我也用错误日志更新了问题。。请看一看<代码>致命错误:对非对象调用成员函数getHighestRow()这是使用Excel2007 Reader、Excel5 Reader还是任何阅读器?@MarkBaker:我更新了问题。这是由于xls文件类型造成的。请提出一个解决方案。@MarkBaker:它使用的是Excel2007,但我可以上载xls和xlsx文件。是的,这就是为什么PHPExcel有不同格式的读卡器,以及为什么
PHPExcel\u IOFactory
类提供了一个identify()
方法来确定任何给定文件都应该使用哪个读卡器,以及一个通用的load()
方法,该方法将确定格式并加载,而无需识别it@MarkBaker:您能提供load()的语法吗?load()
的代码可以在库的源代码中找到,如果您愿意,您可以查看它的工作原理;还有一个完整的文档,详细说明了在/Documentation文件夹或在线上读取电子表格数据的所有选项。依靠文件扩展名来确定要使用的阅读器也不是一个好主意,因为很多人给csv或html标记文件扩展名为.xls或.xlsx。。。。identify()方法根据文件的实际内容进行测试,而不是简单地依赖于正在使用的文件扩展名correct@MarkBaker:我已经更新了我的答案。它现在运转良好。谢谢:)