如何使用PHPExcel从Excel文件中读取数据?

5
我想在PHP中从Excel文件中读取数据,以便我可以处理数据并将其插入到数据库中。 在SO上查看,看起来PHPExcel是此任务的首选库。
我去了PHPExcel GitHub页面(https://github.com/PHPOffice/PHPExcel),但我无法弄清楚如何实际使用该库。有大量的示例文件,我查看的所有文件都似乎与我正在寻找的简单用例不匹配。 此外,我甚至无法弄清楚GitHub页面中需要下载哪些文件以及包含文件的文件夹结构是什么。
因此,鉴于上面链接的GitHub页面现在的结构(对于v1.8),我需要下载哪些文件,以及一个简单的代码示例,允许我提供Excel文件的路径并从文件中读取数据?

1
PHPExcel已经从20世纪进入21世纪。请使用composer进行安装,或者执行git pull(不要尝试选择您想要的单个文件),或者至少点击“克隆或下载”按钮并下载为zip文件。 - Mark Baker
1
使用PHPExcel将数据插入数据库的示例 - Mark Baker
谢谢你的指引,马克。我稍微尝试了一下,最终成功让它工作了。我会把我所做的事情发布为一个答案。谢谢。 - HartleySan
1个回答

20

Mark Baker很有帮助地指导我找到正确的答案。虽然我不使用PHP的Composer(我可能应该学一下),但是,为了使这个东西工作,我去了PHPExcel的GitHub页面(https://github.com/PHPOffice/PHPExcel),点击绿色的Clone and download按钮,然后选择Download ZIP链接进行下载。

解压文件后,我得到了一个名为PHPExcel-1.8的文件夹。我将该文件夹移动到与我想读取的Excel文件(在我的代码中是test.xlsx)和包含以下代码的PHP文件相同的文件夹中。

使其工作的关键是输入正确的路径到IOFactory.php文件中。这对一些人来说可能很简单,但对我来说却困扰了很久。

根据上述和Mark Baker的评论,以下代码对我完美地起作用了(请注意注释部分):

<?php

  //Had to change this path to point to IOFactory.php.
  //Do not change the contents of the PHPExcel-1.8 folder at all.
  include('PHPExcel-1.8/Classes/PHPExcel/IOFactory.php');

  //Use whatever path to an Excel file you need.
  $inputFileName = 'test.xlsx';

  try {
    $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
  } catch (Exception $e) {
    die('Error loading file "' . pathinfo($inputFileName, PATHINFO_BASENAME) . '": ' . 
        $e->getMessage());
  }

  $sheet = $objPHPExcel->getSheet(0);
  $highestRow = $sheet->getHighestRow();
  $highestColumn = $sheet->getHighestColumn();

  for ($row = 1; $row <= $highestRow; $row++) { 
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, 
                                    null, true, false);

    //Prints out data in each row.
    //Replace this with whatever you want to do with the data.
    echo '<pre>';
      print_r($rowData);
    echo '</pre>';
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接