好的,PHPExcel将文件加载到objectReader
中// 1. Load file
$inputFileType = PHPExcel_IOFactory::identify($this->inputFileName);
$this->LogMsg("FileType identified as :".$inputFileType, "O", $opLog);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$this->LogMsg("Reader Created successfully", "O", $opLog);
$objReader->setReadDataOnly(true); // if set to read only, it will ignore styling and data validation
$objReader->setLoadSheetsOnly($this->sheetname);
$objReader= $objReader->setReadFilter($filterSubset);
$objPHPExcel = $objReader->load($this->inputFileName);
echo ("File Loaded <br>");
假设数据已加载到对象中。在那之后,为了访问数据,(如果我错了,请纠正我)你通常会加载工作表。有或没有过滤器。这是文档告诉你如何做的唯一事情(我已经阅读了开发人员和用户文档)。
$worksheet = $objPHPExcel->getSheet(0);
之后,您可以将$工作表转换为数组,并且您可以使用其中的数据。事实上,对于大文件,getSheet方法是花费最多时间的方法(在我的情况下,对于9Mb excel文件为5秒)。
我想知道是否需要加载工作表。加载文件后$ objPHPExcel包含什么? var_dumping它并没有太多启发,因为它似乎有一堆受保护的属性,你甚至无法从外部访问。在查询之后它是否像$ result数据集?我可以使用它而不是加载表吗?除了load()之外还有其他方法可以使用吗?除了文档之外,你能指出我要读的东西吗?
答案 0 :(得分:0)
Excel文件由许多工作表组成,因为它是spreadsheet。实际上,即使只有一张纸,所有数据也都存储在纸张中。
因此,要处理存储在工作表中的数据,必须将其加载到内存中并使PHPExcel进行分析。在它之前没有可用的数据。