首页  >  文章  >  后端开发  >  如何使用 PHP 从 Excel 中查询数据

如何使用 PHP 从 Excel 中查询数据

PHPz
PHPz原创
2023-04-26 10:34:501729浏览

Excel 是广泛使用的办公软件之一,其中包含了大量的数据,比如商品价格表、订单信息表等等。而在很多情况下,我们需要从 Excel 中提取数据进行处理,以便进行后续的数据分析、数据挖掘等操作。本文将介绍如何使用 PHP 从 Excel 中查询数据。

一、准备工作

首先,我们需要安装 PHPExcel 库,以便在 PHP 中读取 Excel 文件。PHPExcel 是一个 PHP 类库,用于读写 Excel 文件,支持多种Excel格式。要安装 PHPExcel 库,请同学们在命令行下执行以下命令:

composer require phpoffice/phpexcel

安装完成后,在 PHP 文件中引入 PHPExcel 类文件:

require 'vendor/autoload.php';

接下来,我们需要准备一个 Excel 文件,假设它的路径为 /var/www/excel/data.xlsx,其中包含了一个工作表 sheet1,数据如下图所示:

excel-data.png

二、查询数据

有了准备工作后,我们就可以使用 PHPExcel 库来查询数据了。具体步骤如下:

1、实例化 PHPExcel 类:

$objPHPExcel = new PHPExcel();

2、加载 Excel 文件:

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load('/var/www/excel/data.xlsx');

其中,Excel2007 表示读取 Excel 2007 及以上版本的文件,如果需要读取其他版本的 Excel 文件,请参考官方文档。

3、获取工作表:

$sheet = $objPHPExcel->getActiveSheet();

4、获取行数和列数:

$rowCount = $sheet->getHighestRow(); //行数
$columnCount = $sheet->getHighestColumn(); //列数
$columnCount = PHPExcel_Cell::columnIndexFromString($columnCount);

其中,PHPExcel_Cell::columnIndexFromString() 方法用于将 Excel 列名称转换成列索引,从而获取列数。

5、遍历工作表,获取数据:

$data = array();

for ($rowIndex = 1; $rowIndex <= $rowCount; $rowIndex++) {
    for ($columnIndex = 0; $columnIndex < $columnCount; $columnIndex++) {
        $cellValue = $sheet->getCellByColumnAndRow($columnIndex, $rowIndex)->getValue();
        $data[$rowIndex-1][$columnIndex] = $cellValue;
    }
}

以上代码中,我们通过嵌套 for 循环,遍历工作表的每一行和每一列,然后使用 getCellByColumnAndRow() 方法获取单元格的值,并将其存储到 $data 数组中,最后得到的 $data 数组结构如下:

array(
    array('姓名', '年龄', '性别'),
    array('张三', 20, '男'),
    array('李四', 25, '女'),
    array('王五', 30, '男'),
)

这样,我们就可以从 Excel 中查询数据了。

三、示例代码

以上是从 Excel 查询数据的具体步骤,下面给出完整的示例代码,供同学们参考:

require 'vendor/autoload.php';

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load('/var/www/excel/data.xlsx');

$sheet = $objPHPExcel->getActiveSheet();

$rowCount = $sheet->getHighestRow();
$columnCount = $sheet->getHighestColumn();
$columnCount = PHPExcel_Cell::columnIndexFromString($columnCount);

$data = array();

for ($rowIndex = 1; $rowIndex <= $rowCount; $rowIndex++) {
    for ($columnIndex = 0; $columnIndex < $columnCount; $columnIndex++) {
        $cellValue = $sheet->getCellByColumnAndRow($columnIndex, $rowIndex)->getValue();
        $data[$rowIndex-1][$columnIndex] = $cellValue;
    }
}

var_dump($data);

输出结果如下:

array(4) {
  [0]=>
  array(3) {
    [0]=>
    string(6) "姓名"
    [1]=>
    string(6) "年龄"
    [2]=>
    string(6) "性别"
  }
  [1]=>
  array(3) {
    [0]=>
    string(6) "张三"
    [1]=>
    float(20)
    [2]=>
    string(3) "男"
  }
  [2]=>
  array(3) {
    [0]=>
    string(6) "李四"
    [1]=>
    float(25)
    [2]=>
    string(3) "女"
  }
  [3]=>
  array(3) {
    [0]=>
    string(6) "王五"
    [1]=>
    float(30)
    [2]=>
    string(3) "男"
  }
}

四、总结

本文介绍了如何使用 PHPExcel 库从 Excel 中查询数据,具体步骤为:实例化 PHPExcel 类、加载 Excel 文件、获取工作表、获取行数和列数、遍历工作表,获取数据。通过本文的介绍,同学们可以掌握从 Excel 中获取数据的基本方法。

以上是如何使用 PHP 从 Excel 中查询数据的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn