PHP输出Excel PHPExcel的方法

下面是关于PHP输出Excel PHPExcel的方法的完整攻略,包含以下几个部分:

下面是关于PHP输出Excel PHPExcel的方法的完整攻略,包含以下几个部分:

  1. 安装PHPExcel

要使用PHPExcel,需要先将它安装到你的项目中。可以从PHPExcel的官方网站https://github.com/PHPOffice/PHPExcel下载最新版本的代码,也可以使用composer命令进行安装。如果使用composer,可以在项目根目录下使用以下命令进行安装:

composer require phpoffice/phpexcel

安装完成后,就可以在项目中使用PHPExcel了。

  1. 创建Excel文件并添加数据

可以使用以下代码创建一个Excel文件并添加数据:

//引入PHPExcel类库
require_once 'path/to/PHPExcel.php';
//新建excel类
$objPHPExcel = new PHPExcel();
//设置文档属性
$objPHPExcel->getProperties()->setCreator("Your name")
                                 ->setLastModifiedBy("Your name")
                                 ->setTitle("Demo")
                                 ->setSubject("Demo")
                                 ->setDescription("Demo")
                                 ->setKeywords("Demo");
//添加数据
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '数据1')
            ->setCellValue('B1', '数据2')
            ->setCellValue('C1', '数据3')
            ->setCellValue('A2', '1')
            ->setCellValue('B2', '2')
            ->setCellValue('C2', '3');

这段代码创建了一个包含3列数据的Excel文件,并将数据添加到第1行和第2行。

  1. 输出Excel文件

可以使用以下代码将Excel文件输出到浏览器:

//下载excel文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="demo.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

这段代码设置了响应头,将Excel文件发送到浏览器进行下载。

  1. 示例说明

下面给出2个示例说明:

示例1:生成包含员工信息的报表

//引入PHPExcel类库
require_once 'path/to/PHPExcel.php';
//新建excel类
$objPHPExcel = new PHPExcel();
//设置文档属性
$objPHPExcel->getProperties()->setCreator("Your name")
                                 ->setLastModifiedBy("Your name")
                                 ->setTitle("员工信息表")
                                 ->setSubject("员工信息表")
                                 ->setDescription("员工信息表")
                                 ->setKeywords("员工信息表");
//添加表头
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '姓名')
            ->setCellValue('B1', '年龄')
            ->setCellValue('C1', '工资')
            ->setCellValue('D1', '性别');
//连接数据库
$conn = mysqli_connect('localhost', 'username', 'password', 'database');
//查询员工信息
$sql = "SELECT * FROM employees";
$result = mysqli_query($conn, $sql);
//将结果添加到Excel中
$i = 2;
while ($row = mysqli_fetch_assoc($result)) {
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A' . $i, $row['name'])
                ->setCellValue('B' . $i, $row['age'])
                ->setCellValue('C' . $i, $row['salary'])
                ->setCellValue('D' . $i, $row['gender']);
    $i++;
}
//下载excel文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="employees.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

这段代码可以生成一个包含员工信息的Excel报表。

示例2:生成包含学生成绩的报表

//引入PHPExcel类库
require_once 'path/to/PHPExcel.php';
//新建excel类
$objPHPExcel = new PHPExcel();
//设置文档属性
$objPHPExcel->getProperties()->setCreator("Your name")
                                 ->setLastModifiedBy("Your name")
                                 ->setTitle("学生成绩表")
                                 ->setSubject("学生成绩表")
                                 ->setDescription("学生成绩表")
                                 ->setKeywords("学生成绩表");
//添加表头
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A1', '姓名')
            ->setCellValue('B1', '语文')
            ->setCellValue('C1', '数学')
            ->setCellValue('D1', '英语');
//读取数据
$data = [
    ['name' => '张三', 'chinese' => 80, 'math' => 90, 'english' => 70],
    ['name' => '李四', 'chinese' => 70, 'math' => 75, 'english' => 85],
    ['name' => '王五', 'chinese' => 90, 'math' => 85, 'english' => 80],
];
//将数据添加到Excel中
$i = 2;
foreach ($data as $row) {
    $objPHPExcel->setActiveSheetIndex(0)
                ->setCellValue('A' . $i, $row['name'])
                ->setCellValue('B' . $i, $row['chinese'])
                ->setCellValue('C' . $i, $row['math'])
                ->setCellValue('D' . $i, $row['english']);
    $i++;
}
//下载excel文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="scores.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

这段代码可以生成一个包含学生成绩的Excel报表。

本文标题为:PHP输出Excel PHPExcel的方法

基础教程推荐