PHPSpreadsheet学习记录——recipes(1)

这篇博客介绍了如何使用PHPSpreadsheet库进行电子表格的元数据设置、活动工作表操作、日期时间插入、公式与区域设置、单元格样式调整等。内容涵盖设置元数据、日期时间的多种写入方式、公式的写入和区域设置,以及单元格的换行、数据类型设定和超链接创建,最后讨论了单元格格式、数字格式、对齐方式、工作簿样式和边框样式等样式设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

关于设置页面的样式,调整页面风格。


提示:以下是本篇文章正文内容,下面案例可供参考

一、设置电子表格的元数据和活动工作表

设置元数据

PhpSpreadsheet 允许一种简单的方法来设置电子表格的元数据,使用 文档属性访问器。电子表格元数据可用于 在文件存储库或文档中查找特定文档 管理体系。例如,Microsoft Sharepoint 使用文档 元数据以在其文档列表中搜索特定文档。

$spreadsheet->getProperties()
    ->setCreator("Maarten Balliauw")
    ->setLastModifiedBy("Mark Baker")
    ->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");
$spreadsheet->getProperties()
    ->setCustomProperty('Editor', 'Mark Baker')
    ->setCustomProperty('Version', 1.17)
    ->setCustomProperty('Tested', true)
    ->setCustomProperty('Test Date', '2021-03-17', Properties::PROPERTY_TYPE_DATE);

设置活动工作表

电子表格由(很少)任何工作表组成,一个或多个工作表。如果您有 1 个或多个工作表,则这些工作表中的一个(并且只有一个)一次可以处于“活动”状态(查看或更新),但始终存在“活动”工作表(除非您明确删除电子表格中的所有工作表)。

通过名字设置“活动”工作表

$activeWorksheet = $spreadsheet->setActiveSheetIndexByName('Sheet1')

通过索引号设置“活动”工作表

$activeWorksheet = $spreadsheet->setActiveSheetIndex(0);

创建新的sheet和获取“活动”sheet

// Create a Spreadsheet, with Worksheet Sheet1, which is the Active Worksheet
$spreadsheet = new Spreadsheet();
// Assign the Active Worksheet (Sheet1) to $worksheet1
$worksheet1 = $spreadsheet->getActiveSheet();
// Create a new Worksheet (Sheet2) and make that the Active Worksheet
$worksheet2 = $spreadsheet->createSheet();

$worksheet1->setCellValue('A1', 'I am a cell on Sheet1');
$worksheet2->setCellValue('A1', 'I am a cell on Sheet2');

二、将日期和时间写入单元格

以下有三种方式:

MySQL-like timestamp ‘2008-12-31’ or date string

\PhpOffice\PhpSpreadsheet\Cell\Cell::setValueBinder( new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder() );

$spreadsheet->getActiveSheet()
    ->setCellValue('D1', '2008-12-31');

$spreadsheet->getActiveSheet()->getStyle('D1')
    ->getNumberFormat()
    ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);

PHP-time (Unix time)

$time = gmmktime(0,0,0,12,31,2008); // int(1230681600)
$spreadsheet->getActiveSheet()
    ->setCellValue('D1', \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($time));
$spreadsheet->getActiveSheet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值