PHP之PhpSpreadsheet速查表
PHPEXCEL 由于版本陈旧性能低下 官⽅放弃维护,转⽽开发PhpSpreadsheet ⽤了最新得psr标准因⽽ 对php版本不向下兼容 需要注意!
PhpSpreadsheet是⼀个⽤纯PHP编写的库,提供了⼀组类,使您可以读取和写⼊不同的电⼦表格⽂件格式:ods, xls, xlsx, csv, pdf, html
构建
PhpSpreadsheet 提供了丰富的API接⼝,可以设置诸多单元格以及⽂档属性,包括样式、图⽚、⽇期、函数等等诸多应⽤,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到。
在调试设置时,确保引⼊了正确的⽂件并实例化。
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet()
字体
第1⾏代码将A7⾄B7两单元格设置为粗体字,Arial字体,10号字;第2⾏代码将B1单元格设置为粗体字:
$spreadsheet->getActiveSheet()->getStyle('A7:B7')->getFont()->setBold(true)->setName('Arial')->setSize(10);
$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
颜⾊
将⽂字颜⾊设置为红⾊:
$spreadsheet->getActiveSheet()->getStyle('A4')->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);
图⽚
可以将图⽚加载到Excel中:
$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing->setName('Logo');
$drawing->setDescription('Logo');
$drawing->setPath('./images/officelogo.jpg');
$drawing->setHeight(36);
表格网站php源码列宽
将A列宽度设置为30(字符):
$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(30);
如果需要⾃动计算列宽,可以这样:
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
设置默认列宽为12:
$spreadsheet->getActiveSheet()->getDefaultColumnDimension()->setWidth(12);
⾏⾼
设置第10⾏⾏⾼为100pt:
$spreadsheet->getActiveSheet()->getRowDimension('10')->setRowHeight(100);
设置默认⾏⾼:
$spreadsheet->getActiveSheet()->getDefaultRowDimension()->setRowHeight(15);
设置⾃适应⾏⾼:
$spreadsheet->getActiveSheet()->getStyle('A10')->getAlignment()->setWrapText(true);对齐
将A1单元格设置为⽔平居中对齐:
$styleArray = [
'alignment' => [
'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,    ],
];
$worksheet->getStyle('A1')->applyFromArray($styleArray);
合并
将A18到E22合并为⼀个单元格:
$spreadsheet->getActiveSheet()->mergeCells('A18:E22');
拆分
将合并后的单元格拆分:
$spreadsheet->getActiveSheet()->unmergeCells('A18:E22');
边框
将B2⾄G8的区域添加红⾊边框:
$styleArray = [
'borders' => [
'outline' => [
'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,
'color' => ['argb' => 'FFFF0000'],
],
],
];
$worksheet->getStyle('B2:G8')->applyFromArray($styleArray);
⼯作表标题
设置当前⼯作表标题:
$spreadsheet->getActiveSheet()->setTitle('Hello');
⽇期时间
设置⽇期格式:
$spreadsheet->getActiveSheet()
->setCellValue('D1', '2018-06-15');
$spreadsheet->getActiveSheet()->getStyle('D1')
->getNumberFormat()
->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2);
换⾏
使⽤\n进⾏单元格内换⾏,相当于(ALT+"Enter"):
$spreadsheet->getActiveSheet()->getCell('A4')->setValue("hello\nworld");
$spreadsheet->getActiveSheet()->getStyle('A4')->getAlignment()->setWrapText(true);
超链接
将单元格设置为超链接形式:
$spreadsheet->getActiveSheet()->setCellValue('E6', 'www.helloweba');
$spreadsheet->getActiveSheet()->getCell('E6')->getHyperlink()->setUrl('www.helloweba');
使⽤函数
使⽤SUM计算B5到C5之间单元格的总和。其他函数同理:最⼤数(MAX),最⼩数(MIN),平均值(AVERAGE):$spreadsheet->getActiveSheet()->setCellValue('B7', '=SUM(B5:C5)');
设置⽂档属性
可以设置Excel⽂档属性:
$spreadsheet->getProperties()
->setCreator("Helloweba")    //作者
->setLastModifiedBy("Yuegg") //最后修改者
->setTitle("Office 2007 XLSX Test Document")  //标题
->setSubject("Office 2007 XLSX Test Document") //副标题
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")  //描述
->setKeywords("office 2007 openxml php") //关键字
->setCategory("Test result file"); //分类
其他
此外,除了提供丰富的Excel⽂件处理接⼝外,PhpSpreadshee还提供了CSV,PDF,HTML以及XML等⽂件处理接⼝。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。