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>';
}
}