互联网技术 · 2024年2月21日

常用的PhpSpreadsheet单元格设置操作总结

这篇文章主要介绍了PhpSpreadsheet设置单元格常用操作汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

PhpSpreadsheet提供了丰富的API接口,可以设置诸多单元格以及文档属性,包括样式、图片、日期、函数等等诸多应用,总之你想要什么样的Excel表格,PhpSpreadsheet都能做到。

在调试设置时,确保引入了正确的文件并实例化。

use PhpOfficePhpSpreadsheetSpreadsheet;

$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(PhpOfficePhpSpreadsheetStyleColor::COLOR_RED);

图片

可以将图片加载到Excel中。

$drawing = new PhpOfficePhpSpreadsheetWorksheetDrawing();

$drawing->setName(Logo);

$drawing->setDescription(Logo);

$drawing->setPath(./images/officelogo.jpg);

$drawing->setHeight(36);

列宽

将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);

对齐

将A1单元格设置为水平居中对齐。

$styleArray = [
  alignment => [
    horizontal => PhpOfficePhpSpreadsheetStyleAlignment::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 => PhpOfficePhpSpreadsheetStyleBorder::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(PhpOfficePhpSpreadsheetStyleNumberFormat::FORMAT_DATE_YYYYMMDD2);

换行

使用n进行单元格内换行,相当于(ALT+”Enter”)。

$spreadsheet->getActiveSheet()->getCell(A4)->setValue(“hellonworld”);

$spreadsheet->getActiveSheet()->getStyle(A4)->getAlignment()->setWrapText(true);

超链接

将单元格设置为超链接形式。

$spreadsheet->getActiveSheet()->setCellValue(E6, www.helloweba.net);

$spreadsheet->getActiveSheet()->getCell(E6)->getHyperlink()->setUrl(https://www.helloweba.net);

使用函数

使用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等文件处理接口。

更多使用设置请参照官网文档:https://phpspreadsheet.readthedocs.io/en/stable/。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册