PHP导出带样式的Excel示例代码

下面就为大家介绍一下如何使用 PHP 导出带样式的 Excel,并附上两个示例说明。

1. 准备工作

首先,你需要安装 PHPExcel 库,这是一个用于在 PHP 中操作 Excel 的优秀库,它可以直接生成带样式的 Excel 文件。你可以从 PHPExcel 官方网站下载并安装。

2. 示范代码

下面是一个简单的 PHP 导出带样式的 Excel 示例代码:

<?php
require_once 'PHPExcel.php';

$objPHPExcel = new PHPExcel();

// 设置文件属性
$objPHPExcel->getProperties()
    ->setCreator("Your Name")
    ->setLastModifiedBy("Your Name")
    ->setTitle("Excel Document")
    ->setSubject("Excel Document")
    ->setDescription("Excel Document");

// 创建表格
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Name')
    ->setCellValue('B1', 'Age')
    ->setCellValue('C1', 'Sex');

$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);

$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);

// 设置单元格样式
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFA0A0A0');
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

// 填写数据
$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Tom')->setCellValue('B2', 22)->setCellValue('C2', 'Male');
$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Lucy')->setCellValue('B3', 21)->setCellValue('C3', 'Female');

// 输出 Excel 文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="example.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
?>

在这段代码中,我们使用了 PHPExcel 库来创建了一个表格,设置了文件属性、单元格样式以及填写了数据,最后将生成的文件以下载的形式提供给用户。

3. 示例说明

下面,我们通过两个示例来进一步说明如何使用 PHP 导出带样式的 Excel:

示例一

我们需要在网页中提供一个按钮,当用户点击该按钮时,可以下载一个带样式的 Excel 文件,文件中包含了学生信息:姓名、年龄和性别。

在 HTML 文件中,我们可以创建一个按钮:

<button onclick="location.href='download.php'">Download Excel</button>

在 PHP 文件中,我们可以编写一个相应的 download.php 文件,当用户点击按钮时,会下载一个带样式的 Excel 文件:

<?php
require_once 'PHPExcel.php';

$objPHPExcel = new PHPExcel();

// 设置文件属性
$objPHPExcel->getProperties()
    ->setCreator("Your Name")
    ->setLastModifiedBy("Your Name")
    ->setTitle("Excel Document")
    ->setSubject("Excel Document")
    ->setDescription("Excel Document");

// 创建表格
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Name')
    ->setCellValue('B1', 'Age')
    ->setCellValue('C1', 'Sex');

$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);

$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);

// 设置单元格样式
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFA0A0A0');
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A2:C2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

// 填写数据
$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Tom')->setCellValue('B2', 22)->setCellValue('C2', 'Male');
$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Lucy')->setCellValue('B3', 21)->setCellValue('C3', 'Female');

// 输出 Excel 文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="example.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
?>

用户点击按钮时,会下载一个名为 example.xlsx 的 Excel 文件,文件中带有表格样式和学生信息。

示例二

假设我们有一个数据库表格 users,包含了用户信息:姓名、年龄、性别和邮箱,我们需要将这些信息导出到一个带样式的 Excel 文件中。

首先,我们需要查询数据库然后将结果填充到 Excel 中:

<?php
require_once 'PHPExcel.php';

// 连接到数据库
$conn = new mysqli('localhost', 'user', 'password', 'database');

// 查询用户信息
$sql = 'SELECT name, age, sex, email FROM users';
$result = $conn->query($sql);

$objPHPExcel = new PHPExcel();

// 设置文件属性
$objPHPExcel->getProperties()
    ->setCreator("Your Name")
    ->setLastModifiedBy("Your Name")
    ->setTitle("Excel Document")
    ->setSubject("Excel Document")
    ->setDescription("Excel Document");

// 创建表格
$objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue('A1', 'Name')
    ->setCellValue('B1', 'Age')
    ->setCellValue('C1', 'Sex')
    ->setCellValue('D1', 'Email');

$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(20);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(40);

$objPHPExcel->getActiveSheet()->getRowDimension('1')->setRowHeight(30);

// 设置单元格样式
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB('FFA0A0A0');
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->getFont()->setBold(true);
$objPHPExcel->getActiveSheet()->getStyle('A2:D2')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

// 填写数据
$i = 2;
while ($row = $result->fetch_assoc()) {
    $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $row['name'])
        ->setCellValue('B' . $i, $row['age'])
        ->setCellValue('C' . $i, $row['sex'])
        ->setCellValue('D' . $i, $row['email']);

    $i++;
}

// 输出 Excel 文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="users.xlsx"');
header('Cache-Control: max-age=0');

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
?>

运行后会生成一个名为 users.xlsx 的带样式 Excel 文件。

以上是关于 PHP 导出带样式的 Excel 简单介绍,希望能对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP导出带样式的Excel示例代码 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 跨浏览器PHP下载文件名中的中文乱码问题解决方法

    跨浏览器PHP下载文件名中的中文乱码问题一直是一个头疼的问题,本文将介绍一种常见的解决方法。 问题描述 当我们用PHP代码下载文件时,如果文件名包含中文字符,就有可能在不同的浏览器中出现乱码。例如,在火狐浏览器中,文件名可能显示为乱码;而在谷歌浏览器中,文件名可能显示为可读的中文字符。 解决方案 解决这个问题的方法是在HTTP响应头中设置Content-Di…

    PHP 2023年5月26日
    00
  • PHP与Web页面交互操作实例分析

    下面是“PHP与Web页面交互操作实例分析”的完整攻略: 1. 什么是PHP与Web页面交互操作? PHP与Web页面交互操作是指使用PHP语言来实现与Web页面的交互,一般用于网站的后端开发。PHP提供了众多的内建函数和语言特性,使得与Web页面交互变得方便快捷。 2. 如何实现PHP与Web页面交互操作? 要实现PHP与Web页面交互操作,主要需要掌握以…

    PHP 2023年5月27日
    00
  • php魔术函数__call()用法实例分析

    PHP魔术函数__call()用法实例分析 什么是__call()函数 __call()是PHP中的魔术函数(Magic Method),是在调用一个不存在或不可访问的类方法时,PHP自动调用的一个特殊函数。它允许在运行时动态调用一个不存在的或不可访问的方法。开发人员可以使用这个函数在访问一个不存在的方法时自定义一些操作。 __call()函数的使用 __c…

    PHP 2023年5月26日
    00
  • 初探PHP5

    初探PHP5攻略 什么是PHP5? PHP5是一种开源的服务器端脚本语言,用于创建动态的Web页面。在此之前,有PHP4, 但PHP5和PHP4相比,具有更多功能特性和更好的性能。目前,PHP5已经成为了互联网开发中最主流的编程语言之一。 安装PHP5 Step1: 下载PHP 在官网http://www.php.net/downloads.php 下载PH…

    PHP 2023年5月23日
    00
  • Ajax和PHP正则表达式验证表单及验证码

    一、什么是Ajax和PHP正则表达式验证表单及验证码 在网站设计中,表单验证非常重要。一方面,对于用户提交的信息进行检查能够保证数据的正确性,防止非法数据被提交;另一方面,防止黑客利用安全漏洞进行攻击和恶意提交信息。 在验证表单时,常用的方法是使用正则表达式进行验证,而在提交表单时,常用的技术是Ajax。针对表单验证以及验证码的情况,我们可以采用Ajax和P…

    PHP 2023年5月23日
    00
  • php冒泡排序、快速排序、快速查找、二维数组去重实例分享

    PHP冒泡排序攻略 什么是冒泡排序? 冒泡排序,是一种简单的排序算法。它重复地走访过要排序的序列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。 冒泡排序实现步骤 比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对第0个到第n-1个数据做同样的工作,这时第n个数据应该是最大的数; 针对所有的元素重复以上的步骤,除了最后一个; 重复步骤1~3,…

    PHP 2023年5月26日
    00
  • PHP解析目录路径的3个函数总结

    以下是关于“PHP解析目录路径的3个函数总结”的完整攻略: 概述 在PHP中,解析目录路径是非常常见的操作,PHP提供了多种函数来满足不同场景需求。本文总结了3个较常用的函数,分别为basename、dirname和pathinfo。 函数一:basename basename函数用于获取路径中的文件名部分,可以是相对路径或绝对路径。例如: $path = …

    PHP 2023年5月25日
    00
  • php通过array_push()函数添加多个变量到数组末尾的方法

    当我们需要向已有的PHP数组中添加数据时,我们可以使用array_push()函数。使用array_push()函数可以向PHP数组的末尾添加一个或多个元素,这是一种非常方便快捷的方式。 以下是使用array_push()函数添加单个变量到数组末尾的方法: $fruits = array("apple", "banana&quo…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部