账户中心 退出系统
开发文档 资讯·分享 技术交流 会员登录
phpGrace GSCMS 公众号系统
Execl 工具类

Execl 工具类概述

Execl 工具类基于 \PhpOffice\PhpSpreadsheet 类库,可以方便的对 Excel 进行读、写操作。
相关文档 : https://phpspreadsheet.readthedocs.io/en/latest/
使用方法建议参考官方示例 : https://github.com/PHPOffice/PhpSpreadsheet/tree/master/samples

创建 Execl 示例

<?php
use \PhpOffice\PhpSpreadsheet\Spreadsheet;
use \PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class indexController extends grace{
    public function index(){
        // 加载第三方类库
        require_once PG_IN.'vendor'.PG_DS.'autoload.php';
        $spreadsheet = new Spreadsheet();

        // 创建基础信息
        $spreadsheet->getProperties()->setCreator("phpGrace")
            ->setLastModifiedBy("phpGrace")
            ->setTitle("phpGrace demo")
            ->setSubject("objPHPExcel");
        // 设置 sheet 名称
        $spreadsheet->getActiveSheet(0)->setTitle('学生信息表');
        // 设置标列及题
        $spreadsheet->setActiveSheetIndex(0)
            ->setCellValue('A1', '姓名')
            ->setCellValue('B1', '性别')
            ->setCellValue('C1', '年龄');

        // 数据填充【此数据可以来自数据库】
        $data = array(
            array('张三', '男', 18),
            array('李四', '男', 19),
            array('lucy', '女', 20)
        );
        $i = 2;
        foreach($data as $rows){
            $spreadsheet->setActiveSheetIndex(0)
                ->setCellValue('A'.$i, $rows[0])
                ->setCellValue('B'.$i, $rows[1])
                ->setCellValue('C'.$i, $rows[2]);
            $i++;
        }
        //保存为 xls
        $writer = new Xlsx($spreadsheet);
        $writer->save('t.xlsx');
    }
}

读取 Execl 示例

<?php
use \PhpOffice\PhpSpreadsheet\Spreadsheet;
class indexController extends grace{
    public function index(){
        // 加载第三方类库
        require_once PG_IN.'vendor'.PG_DS.'autoload.php';
        $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('t.xlsx');
        $sheetData = $spreadsheet->getSheet(0)->toArray(null, true, true, true);
        echo '<table>';
        foreach($sheetData as $sheet){
            echo '<tr>
                <td>'.$sheet['A'].'</td>
                <td>'.$sheet['B'].'</td>
                <td>'.$sheet['C'].'</td>
            </tr>';
        }
        echo '</table>';
    }
}