使用 PHP 创建 Excel 读取器类

介绍:
PHPExcel-1.8.1读取excel

创建 ExcelReader 类:
ExcelReader 类旨在从 Excel 文件中读取数据。它以文件路径作为输入,并提供一个方法来从 Excel 文件中读取数据。

<?php

require_once "lib/PHPExcel-1.8.1/Classes/PHPExcel.php";

class ExcelReader
{
    protected $file;

    public function __construct($file)
    {
        $this->file = $file;
    }

    public function read($startRow = 1)
    {
        if (!file_exists($this->file)) {
            return false;
        }

        // 创建 Excel 读取器对象
        $reader = PHPExcel_IOFactory::createReader('Excel5');
        // 获取 Excel 对象
        $excel = PHPExcel_IOFactory::load($this->file);

        // 初始化数据数组
        $data = array();

        // 获取所有工作表名
        $sheetNames = $excel->getSheetNames();
        // 遍历工作表
        foreach ($sheetNames as $sheetName) {
            // 根据表名设置当前工作表
            $excel->setActiveSheetIndexByName($sheetName);
            // 获取当前工作表对象
            $curSheet = $excel->getActiveSheet();
            // 获取最大行数和列数
            $rows = $curSheet->getHighestRow();
            $cols = $curSheet->getHighestColumn();

            // 初始化工作表数据数组
            $data[$sheetName] = array();

            // 循环读取每一行数据
            for ($row = $startRow; $row <= $rows; $row++) {
                $rowData = array();
                // 循环读取每一列数据
                for ($col = 'A'; $col <= $cols; $col++) {
                    $cellValue = $curSheet->getCell($col . $row)->getValue();
                    // 将单元格值存储到行数据数组中
                    $rowData[] = $cellValue;
                }
                // 将行数据存储到工作表数据数组中
                $data[$sheetName][] = $rowData;
            }
        }
        
        // 检查 'Sheet1' 是否存在
        if(!array_key_exists("Sheet1", $data)){
            return false;
        }

        // 返回 'Sheet1' 中的数据
        return $data['Sheet1'];
    }
}

?>

使用 ExcelReader 类:

posted @ 2024-05-16 11:14  xingduo  阅读(9)  评论(0编辑  收藏  举报