PHPExcel:一旦有了对象,是否需要getSheet?

时间:2017-04-02 14:30:52

标签: phpexcel

好的,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()之外还有其他方法可以使用吗?除了文档之外,你能指出我要读的东西吗?

1 个答案:

答案 0 :(得分:0)

Excel文件由许多工作表组成,因为它是spreadsheet。实际上,即使只有一张纸,所有数据也都存储在纸张中。

因此,要处理存储在工作表中的数据,必须将其加载到内存中并使PHPExcel进行分析。在它之前没有可用的数据。