别勉强
详解PhpSpreadsheet设置单元格导⼊导出
PhpSpreadsheet提供了丰富的API接⼝,可以设置诸多单元格以及⽂档属性,包括样式、图⽚、⽇期、函数等等诸多应⽤,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到。
在thinkphp中引⼊该三⽅库的⽅法:
compor require phpoffice/phpspreadsheet
各个功能类说明如下:
u PhpOffice\PhpSpreadsheet\Spreadsheet;
u PhpOffice\PhpSpreadsheet\Style\Color; //设置字体颜⾊
u PhpOffice\PhpSpreadsheet\Style\Alignment; //设置对齐⽅式
u PhpOffice\PhpSpreadsheet\Style\Border; //设置Border样式
u PhpOffice\PhpSpreadsheet\Style\NumberFormat;//数字格式化
u PhpOffice\PhpSpreadsheet\Writer\Xlsx; //导出XLSX⽂件
u PhpOffice\PhpSpreadsheet\Style\Fill; //设置背景⾊
白萝卜功效
在调试设置时,确保引⼊了正确的⽂件并实例化。
1. u PhpOffice\PhpSpreadsheet\Spreadsheet;
2.
3. $spreadsheet = new Spreadsheet();
4. $worksheet = $spreadsheet->getActiveSheet();
设置⼯作簿的默认样式哀思的意思
可以设置⼯作簿的默认样式。让我们将默认字体设置为Arial⼤⼩8:
$spreadsheet->getDefaultStyle()->getFont()->tName('Arial');
$spreadsheet->getDefaultStyle()->getFont()->tSize(8);
字体
第1⾏代码将A7⾄B7两单元格设置为粗体字,Arial字体,10号字;第2⾏代码将B1单元格设置为粗体字。
1. $spreadsheet->getActiveSheet()->getStyle('A7:B7')->getFont()->tBold(true)->tName('Arial')
2. ->tSize(10);;
3. $spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->tBold(true);
颜⾊
将⽂字颜⾊设置为红⾊。
地球脉动观后感1. $spreadsheet->getActiveSheet()->getStyle('A4')
2. ->getFont()->getColor()->tARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED);图⽚
可以将图⽚加载到Excel中。
1. $drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
2. $drawing->tName('Logo');
3. $drawing->tDescription('Logo');
4. $drawing->tPath('./images/officelogo.jpg');
5. $drawing->tHeight(36);
列宽
将A列宽度设置为30(字符)。
$spreadsheet->getActiveSheet()->getColumnDimension('A')->tWidth(30);
如果需要⾃动计算列宽,可以这样:
$spreadsheet->getActiveSheet()->getColumnDimension('B')->tAutoSize(true);
设置默认列宽为12。
$spreadsheet->getActiveSheet()->getDefaultColumnDimension()->tWidth(12);
⾏⾼
设置第10⾏⾏⾼为100pt。
$spreadsheet->getActiveSheet()->getRowDimension('10')->tRowHeight(100);
设置默认⾏⾼。
$spreadsheet->getActiveSheet()->getDefaultRowDimension()->tRowHeight(15);
对齐
将A1单元格设置为⽔平居中对齐。
1. $styleArray = [
2. 'alignment' => [
3. 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
4. ],
音乐教学工作计划5. ];
6. $worksheet->getStyle('A1')->applyFromArray($styleArray);
英语心得给多⾏设置相同样式的⽅法,多⾏设置
$worksheet->getStyle('A1:F15')->applyFromArray($styleArray);
合并
将A18到E22合并为⼀个单元格。
$spreadsheet->getActiveSheet()->mergeCells('A18:E22');
$worksheet->getStyle('C1')->applyFromArray($styleArray);
$spreadsheet->getActiveSheet()->tCellValue('C1', 'C1居中');
//合并单元格 A7到F7,并且给合并的单元格设值;
$spreadsheet->getActiveSheet()->mergeCells('A7:F7');
$spreadsheet->getActiveSheet()->tCellValue('A7', '合并单元格A7到F7');
拆分
将合并后的单元格拆分。
$spreadsheet->getActiveSheet()->unmergeCells('A18:E22');
边框
将B2⾄G8的区域添加红⾊边框。
1. $styleArray = [
2. 'borders' => [
3. 'outline' => [
4. 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK,
5. 'color' => ['argb' => 'FFFF0000'],
6. ],
7. ],
8. ];
9. $worksheet->getStyle('B2:G8')->applyFromArray($styleArray);
⼯作表标题
设置当前⼯作表标题。
$spreadsheet->getActiveSheet()->tTitle('Hello');
⽇期时间
设置⽇期格式。
1. $spreadsheet->getActiveSheet()
2. ->tCellValue('D1', '2018-06-15');
3.抗疏
4. $spreadsheet->getActiveSheet()->getStyle('D1')
5. ->getNumberFormat()
6. ->tFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2);
换⾏
使⽤\n进⾏单元格内换⾏,相当于(ALT+"Enter")。
1. $spreadsheet->getActiveSheet()->getCell('A4')->tValue("hello\nworld");
2. $spreadsheet->getActiveSheet()->getStyle('A4')->getAlignment()->tWrapText(true);
超链接
著名文学作品
将单元格设置为超链接形式。
1. $spreadsheet->getActiveSheet()->tCellValue('E6', 'www.helloweba');
2. $spreadsheet->getActiveSheet()->getCell('E6')->getHyperlink()->tUrl('www.helloweba');
使⽤函数
使⽤SUM计算B5到C5之间单元格的总和。其他函数同理:最⼤数(MAX),最⼩数(MIN),平均值(AVERAGE)。
1. $spreadsheet->getActiveSheet()
2. ->tCellValue('B7', '=SUM(B5:C5)');
//设置F11为A11到E11之间的总和
$spreadsheet->getActiveSheet()->tCellValue('A11', 1);
$spreadsheet->getActiveSheet()->tCellValue('B11', 2);
$spreadsheet->getActiveSheet()->tCellValue('C11', 3);
$spreadsheet->getActiveSheet()->tCellValue('D11', 4);
$spreadsheet->getActiveSheet()->tCellValue('E11', 5);
//计算总和
$spreadsheet->getActiveSheet()->tCellValue('F11', '=SUM(A11:E11)');
设置⽂档属性
可以设置Excel⽂档属性。
1. $spreadsheet->getProperties()
2. ->tCreator("Helloweba") //作者
3. ->tLastModifiedBy("Yuegg") //最后修改者
4. ->tTitle("Office 2007 XLSX Test Document") //标题
5. ->tSubject("Office 2007 XLSX Test Document") //副标题
6. ->tDescription("Test document for Office 2007 XLSX, generated using PHP class.") //描述
7. ->tKeywords("office 2007 openxml php") //关键字
8. ->tCategory("Test result file"); //分类
此外,除了提供丰富的Excel⽂件处理接⼝外,PhpSpreadshee还提供了CSV,PDF,HTML以及XML等⽂件处理接⼝。导⼊:
1. <?php
2. require 'vendor/autoload.php';
3.
4. $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load('tmp.xlsx');