使用Spreadsheet导出表格时,设置样式
Posted wl-sjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Spreadsheet导出表格时,设置样式相关的知识,希望对你有一定的参考价值。
$spreadsheet = new Spreadsheet();// 初始化
$spreadsheet->createSheet();// 添加一个sheet
$sheet = $spreadsheet->getSheet(1);// 操作第二个sheet
$sheet = $spreadsheet->getActiveSheet();
// 设置值的三种办法
$sheet->setCellValue(‘E6‘, ‘www.helloweba.net‘);
$sheet->getCell(‘A1‘)->setValue(‘John‘);
$sheet->setCellValueByColumnAndRow(5, 5, ‘hahah‘);
$sheet->mergeCellsByColumnAndRow(1, 2,1, 5);// 合并单元格
$sheet->mergeCells(‘A1:E1‘);// 合并单元格
for ($i=1; $i <= 10; $i++) {
$sheet->setCellValue(‘A‘.$i, ‘Hello World 加上考虑对方就爱上了对方就撒‘);// 合并单元格之后这样可以放进去
$sheet->setCellValue(‘B‘.$i, ‘Hello World 加上考虑对方就爱上了对方就撒‘);// 合并单元格之后这样可以放进去
$sheet->setCellValue(‘C‘.$i, ‘Hello World 加上考虑对方就爱上了对方就撒‘);// 合并单元格之后这样可以放进去
}
$sheet->getStyle(‘A3:C3‘)->getFont()->setBold(true);// 一定范围内字体加粗
$sheet->getStyle(‘A4:C5‘)->getFont()->getColor()->setARGB(‘cc3399‘);// 字体颜色,使用rgb的颜色格式
$sheet->getColumnDimension(‘A‘)->setWidth(50);// 设置列的宽度
$sheet->getDefaultColumnDimension()->setWidth(50);//设置默认列宽
$sheet->getColumnDimension(‘B‘)->setAutoSize(true);//自动设置列宽
$sheet->getRowDimension(‘1‘)->setRowHeight(50);//设置行高
$sheet->getDefaultRowDimension()->setRowHeight(15);// 设置默认行高
$sheet->getStyle(‘A2:E2‘)->getFont()->setSize(14);// 设置字体大小
$sheet->getStyle(‘A1:C1‘)->getAlignment()->setVertical(Alignment::VERTICAL_TOP);// 垂直向上
$sheet->getStyle(‘A1:C1‘)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB(‘66ccff‘);// 设置背景色
$styleArray = [
‘borders‘ => [
‘outline‘ => [
‘borderStyle‘ => Border::BORDER_THICK,
‘color‘ => [‘argb‘ => ‘3399ff‘],
],
‘inside‘ =>[
‘borderStyle‘ => Border::BORDER_THIN,
‘color‘ => [‘argb‘ => ‘cc0000‘],
]
],
];
$sheet->getStyle(‘A1:C5‘)->applyFromArray($styleArray);// 外边框,内边框
$styleArray = [
‘borders‘ => [
‘outline‘ => [
‘borderStyle‘ => Border::BORDER_THICK,
‘color‘ => [‘argb‘ => ‘FFFF0000‘],
],
],
‘font‘ => [‘bold‘ => true],
‘alignment‘ => [
‘horizontal‘ => Alignment::HORIZONTAL_CENTER,// 水平居中
‘vertical‘ => phpOfficePhpSpreadsheetStyleAlignment::VERTICAL_CENTER //垂直居中
],
];
$sheet->getStyle(‘B2:E8‘)->applyFromArray($styleArray);// 加粗,水平居中,边框线颜色
$sheet->setTitle(‘就当是标题了‘);// 当前工作表标题
$sheet->getCell(‘A4‘)->setValue("hello
world");// 换行
$sheet->setCellValue(‘E6‘, ‘www.helloweba.net‘);
$sheet->getCell(‘E6‘)->getHyperlink()->setUrl(‘https://www.helloweba.net‘);// 点击直接跳转
$spreadsheet->getProperties()
->setCreator("作者") //作者
->setLastModifiedBy("修改者") //最后修改者
->setTitle("这是标题") //标题
->setSubject("这是副标题") //副标题
->setDescription("这是描述") //描述
->setKeywords("这是关键字") //关键字
->setCategory("分类"); //分类
$writer = new Xlsx($spreadsheet);
$name=rand(10,99);
$writer->save($name.‘.xlsx‘);// 直接下载到本地文件夹里
以上是关于使用Spreadsheet导出表格时,设置样式的主要内容,如果未能解决你的问题,请参考以下文章
vue 下使用 exceljs + x-spreadsheet 带样式导出Excel