PhpSpreadsheet系列二: laravel框架下 PhpSpreadsheet 使用攻略 excle的常用样式
laravel框架下 PhpSpreadsheet 使用攻略 excle的各种样式
写在前面
按照上次安装好
laravel框架下 新手如何使用安装PhpSpreadsheet
在你的控制器新增 PhpSpreadsheet调用
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet(); //新建实例
$spreadsheet->createSheet(); //创建sheet
$objActSheet= $spreadsheet->setActiveSheetIndex(0);//设置当前的活动sheet
一、样式设置
1、对其方式设置
//默认水平居中
$spreadsheet->getDefaultStyle()->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER);
//默认垂直居中
$spreadsheet->getDefaultStyle()->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
2、字体设置
//加粗、字体样式、字体大小
$spreadsheet->getActiveSheet(0)->getStyle('A:L')->getFont()->setBold(true)->setName('宋体')->setSize(12);
//颜色
$spreadsheet->getActiveSheet($n)->getTabColor()->setARGB('00F4B084')
3、固定第一行
$spreadsheet->getActiveSheet(0)->freezePane('A1');
4、边框设置
$border = [
'borders' => [
'outline' => [//外边框
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
],
'inside' =>[ //内边框
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
]
],
];
$spreadsheet->getActiveSheet($n)->getStyle('A:J')->applyFromArray($border);
5、行高 行宽
//行高
$spreadsheet->getActiveSheet()->getDefaultRowDimension()->setRowHeight(30);
//行宽
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(8);
6、合并单元格
$spreadsheet->getActiveSheet()->mergeCells('A1:L1');
二、内容
1、表头赋值
$objActSheet->setCellValue('A1', '名称')
->setCellValue('B2', '时间');
2、内容赋值
//数据循环
$sql="";
$data=DB::select($sql);
foreach ($data as $i => $d) {
$spreadsheet->getActiveSheet(0)->setCellValue('A' . ($i + 1), $d->name);
$spreadsheet->getActiveSheet(0)->setCellValue('B' . ($i + 1), $d->time);
}
三、输出文档
header('Content-Type: application/vnd.ms-excel; charset=UTF-8');
header('Content-Disposition: attachment;filename="' . $name . '.xlsx"');
header('Cache-Control: max-age=0');
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');
//删除清空:
$spreadsheet->disconnectWorksheets();
unset($spreadsheet);
exit;
本作品采用《CC 协议》,转载必须注明作者和本文链接
第一台 nginx 服务器 composer require phpoffice/phpspreadsheet 时报错!请问大佬们需要怎么处理 !感谢!
第二台 nginx 服务器 composer require phpoffice/phpspreadsheet 时也报错!请问大佬们需要怎么处理 !感谢!
我今天在本地新安装了一个 laravel 然后 composer require phpoffice/phpspreadsheet 按照教程操作,本地成功调试 insert 到数据库了。 我把代码移植到服务器上,没有使用 composer require phpoffice/phpspreadsheet 安装。直接把 phpoffice 这个文件包粘贴到 vendor 目录下了。控制器和路由视图,按照本地机器都一模一样移植到服务器上了。 然后访问 www.xxx.com/tests
请问大佬还需要去对接哪里吗?感谢! 以为我服务器使用 composer require phpoffice/phpspreadsheet 安装报错。
所以想着直接从本地安装调试好,把对应文件拷贝到服务器上。 感谢指导!谢谢!