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

yizhihongxing

下面就为大家介绍一下如何使用 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的面向对象编程方式”的完整攻略: 1. 面向对象编程基础 在面向对象编程中,我们将一组相关的数据和操作封装在一起,成为一个对象。对象提供了一些方法(也称为成员函数),用于操作这些数据。这样可以让我们更好地组织代码并提高代码的复用性。 在PHP中,定义一个类如下: class ClassName { // 类的属性…

    PHP 2023年5月23日
    00
  • CTF中的PHP特性函数解析之上篇

    下面是“CTF中的PHP特性函数解析之上篇”的完整使用攻略,包括函数描述、函数分析、函数使用和两个示例说明。 函数描述 在CTF比赛中PHP特性函数是非常常见的题目类型。这些函数常是PHP中的一些特殊函数,可以用于执行一些非常有的操作。在本篇攻略中,我们将介绍一些常见的PHP特性函数,包括extract()、parse_str()、serialize()、u…

    PHP 2023年5月12日
    00
  • PHP设计模式之命令模式示例详解

    PHP设计模式之命令模式示例详解 命令模式是一种行为型模式,它允许你将请求封装成对象,这样就可以使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持撤销操作,因此被称为可撤销的操作。 示例1: 使用命令模式实现固定长度的文件备份 示例1中,我们将使用命令模式实现固定长度的文件备份。在此示例中,我们将使用一个Command接口来表示备份的命令,并让每个…

    PHP 2023年5月23日
    00
  • PHP判断一个字符串是否是回文字符串的方法

    要判断一个字符串是否是回文字符串,我们可以从两方面入手:首先,回文字符串的定义是正反顺序排列的字符串相同,因此我们可以将原来的字符串倒转过来,然后比较是否相等;其次,回文字符串长度对称,可以通过循环比较对应字符判断是否相等。 下面是两种方法的实现示例。 方法一:字符串倒转比较 通过使用 PHP 的 strrev() 函数,可以很方便地将字符串倒转,然后再与原…

    PHP 2023年5月26日
    00
  • IIS 环境下配置PHP5+MySql+PHPMyAdmin

    下面是在IIS环境下配置PHP5+Mysql+PHPMyAdmin的完整攻略: 环境准备 首先,我们需要准备以下环境: 操作系统:Windows Server 2008或更高版本 IIS:版本为7.0或更高版本 PHP5:版本为5.6.31或更高版本 MySQL:版本为5.7或更高版本 PHPMyAdmin:版本为4.7.4或更高版本 我们假设以上环境已经准…

    PHP 2023年5月24日
    00
  • PHP下载文件函数与用法示例

    当我们在使用PHP进行文件下载操作时,可以使用download_file()函数来实现。该函数可以将指定的文件下载到客户端本地。下面是该函数的用法示例: download_file()函数 <?php function download_file($path) { if (file_exists($path)) { header(‘Content-De…

    PHP 2023年5月25日
    00
  • Shell+Curl网站状态检查脚本 抓出无法访问的站点

    当我们做网站维护工作时,需要经常对网站进行状态监控,定期检测网站是否能正常访问、响应时间等。本篇攻略将介绍如何使用Shell和Curl命令来编写网站状态检查脚本,抓出无法访问的站点。 1. 脚本原理 该脚本通过使用Curl命令对指定站点进行请求,并返回http状态码进行判断,以此来检测网站是否能正常访问。如果请求失败或返回5xx状态码(服务器错误),则视为网…

    PHP 2023年5月27日
    00
  • php生成静态页面并实现预览功能

    生成静态页面可以有效降低服务器负担,提高网站访问效率。本文将为大家介绍如何使用 PHP 生成静态页面并实现预览功能。 步骤一:生成静态页面 1. 准备工作 首先,您需要创建一个 PHP 页面,用于生成静态页面。我们可以使用 file_put_contents 函数将 PHP 页面生成的 HTML 代码写入一个 HTML 文件中。这里有一个简单的示例: &lt…

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