<?php
/**
* 表格
*
* @author zm
*/
namespace Common\Service;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\IOFactory;
class SpreadsheetService extends BaseService
{
protected $autoCheckFields = false;
/**
* 导出
*
* @param string $filename 文件名
* @param array $header 表头
* @param array $data 数据
*/
function export($filename, $header, $data)
{
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
//表头
foreach ($header as $key => $value) {
$worksheet->setCellValueByColumnAndRow($key+1, 1, $value);
}
//内容
$row = 2;
foreach ($data as $item) {
$column = 1;
foreach ($item as $value) {
$worksheet->setCellValueExplicitByColumnAndRow($column, $row, $value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);
$column++;
}
$row++;
}
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition:attachment;charset=utf-8;filename=$filename.xlsx");
$writer->save('php://output');
exit;
}
}
thinkphp3.2调用方式:
D('Spreadsheet', 'Service')->export(
'学员管理' . date('Y-m-d'),
['用户名', '班级', '积分', '学习时长'] ,
$data
);