正文 首页新闻资讯

php excel模板使用

ming

php excel模板使用

PHP Excel模板使用教程

在进行Web开发时,PHP是一种广泛使用的服务器端脚本语言。当需要处理Excel文件生成或读取的需求时,我们可以利用一些强大的库来简化这个过程。其中,PhpSpreadsheet是一个流行的开源项目,它允许开发者通过PHP代码创建和操作Excel文档。本文将向您介绍如何使用PhpSpreadsheet创建一个简单的Excel模板,并对其进行数据填充。

一、环境准备与安装

在开始使用PhpSpreadsheet之前,首先确保您的开发环境中已经安装了PHP及Composer(PHP的依赖管理工具)。如果您还没有安装它们,请先完成这些准备工作。

  1. 安装PHP:根据您的操作系统,选择合适的安装方式来安装PHP。对于Windows用户,可以考虑使用XAMPP或者WAMP等集成环境;Linux用户则可以通过包管理器如apt-get或yum来进行安装。
  2. 安装Composer:访问官方网址 getcomposer.org 下载并按照指引安装Composer。
  3. 创建项目目录:在命令行中创建一个新的文件夹作为您的项目根目录,例如命名为 php-excel-project
  4. 初始化Composer:进入刚刚创建的文件夹内,在命令行输入 composer init 来初始化一个新的Composer项目。跟随提示设置项目基本信息。
  5. 安装PhpSpreadsheet:最后一步是添加phpoffice/phpspreadsheet到您的项目依赖中。运行 composer require phpoffice/phpspreadsheet 命令即可自动下载并配置好该库。

二、创建基本的Excel模板

接下来我们将学习如何利用PhpSpreadsheet创建一个最基础的Excel工作簿,并保存为.xlsx格式文件。

  1. 引入必要的类:打开文本编辑器新建一个PHP文件,比如叫做create_excel.php。在此文件顶部加入如下代码以导入所需的类:
    php
    深色版本
    1require 'vendor/autoload.php';
    2
    3use PhpOffice\PhpSpreadsheet\Spreadsheet;
    4use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  2. 实例化对象:接着创建Spreadsheet对象,这将是我们的工作簿模型。
    php
    深色版本
    1$spreadsheet = new Spreadsheet();
  3. 选择活动工作表:每个Spreadsheet都可以包含多个工作表,默认情况下只有一个名为“Sheet”的工作表处于激活状态。
    php
    深色版本
    1$sheet = $spreadsheet->getActiveSheet();
  4. 设置标题:给当前的工作表设置一个标题,比如“销售报告”。
    php
    深色版本
    1$sheet->setTitle('销售报告');
  5. 保存文件:定义输出路径以及文件名,并通过Xlsx写入器将内容保存下来。
    php
    深色版本
    1$writer = new Xlsx($spreadsheet);
    2$writer->save('simple.xlsx');

三、向模板中添加数据

现在我们有了一个空白的工作簿,下一步就是往里面填入实际的数据了。

  1. 直接赋值法:这是最直观的方式之一,直接指定单元格地址并为其分配数值。
    php
    深色版本
    1$sheet->setCellValue('A1', '月份');
    2$sheet->setCellValue('B1', '销售额');
    3$sheet->setCellValue('C1', '利润');
  2. 批量插入数组:如果有多条记录需要一次性添加,则可以构造二维数组并通过循环结构实现快速填充。
    php
    深色版本
    1$data = [
    2    ['1月', 2000, 300],
    3    ['2月', 2500, 400],
    4    // 更多...
    5];
    6
    7foreach ($data as $row => $columns) {
    8    foreach ($columns as $column => $value) {
    9        $sheet->setCellValueByColumnAndRow($column + 1, $row + 2, $value);
    10    }
    11}
  3. 调整列宽:为了让表格看起来更加美观,可以根据内容自适应地调整各列宽度。
    php
    深色版本
    1foreach(range('A','C') as $col){
    2    $sheet->getColumnDimension($col)->setAutoSize(true);
    3}

四、样式与格式化

为了使生成的报表更具可读性,适当的样式和格式设置是必不可少的。

  1. 字体样式:修改特定单元格区域内的文字颜色、大小等属性。
    php
    深色版本
    1$styleArray = [
    2    'font' => [
    3        'bold' => true,
    4        'color' => ['argb' => 'FFFFFF'],
    5        'size' => 14,
    6    ],
    7    'fill' => [
    8        'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
    9        'startColor' => [
    10            'argb' => 'FF0000',
    11        ],
    12    ],
    13];
    14
    15$sheet->getStyle('A1:C1')->applyFromArray($styleArray);
  2. 边框设置:给表格加上边框线可以让其结构更清晰。
    php
    深色版本
    1$borderStyle = [
    2    'borders' => [
    3        'allBorders' => [
    4            'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
    5            'color' => ['argb' => 'FF000000'],
    6        ],
    7    ],
    8];
    9
    10$sheet->getStyle('A1:C' . count($data)+1)->applyFromArray($borderStyle);
  3. 数字格式化:对含有数字的单元格应用货币、百分比等特殊格式。
    php
    深色版本
    1$numberFormat = '_(* #,##0_);_(* (#,##0);_(* "-"??_);_(@_)';
    2$sheet->getStyle('B2:B' . (count($data)+1))->getNumberFormat()->setFormatCode($numberFormat);

五、导出与分享

一旦完成了所有编辑操作,就可以将最终结果导出了。

  1. 本地保存:正如前面所展示的一样,可以直接调用save()方法将文件存储到指定位置。
    php
    深色版本
    1$writer->save('final_report.xlsx');
  2. 浏览器下载:若希望用户能够直接从网页上下载这份报告,只需稍微改动一下保存逻辑即可。
    php
    深色版本
    1header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    2header('Content-Disposition: attachment;filename="report.xlsx"');
    3header('Cache-Control: max-age=0');
    4
    5$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Xlsx');
    6$writer->save('php://output');

六、总结

通过上述步骤的学习,相信您已经掌握了使用PhpSpreadsheet创建简单Excel报表的基本技能。当然,这只是入门级的应用场景而已,实际上该库还提供了许多高级功能等待着大家去探索发现。无论是数据分析还是自动化办公领域,掌握如何灵活运用这类工具都将极大提升工作效率。希望本篇教程能帮助到正在寻找解决方案的朋友们!

版权免责声明 1、本文标题:《php excel模板使用》
2、本文来源于,版权归原作者所有,转载请注明出处!
3、本网站所有内容仅代表作者本人的观点,与本网站立场无关,作者文责自负。
4、本网站内容来自互联网,对于不当转载或引用而引起的民事纷争、行政处理或其他损失,本网不承担责任。
5、如果有侵权内容、不妥之处,请第一时间联系我们删除。