phpspreadsheet的使用

2024-09-19php编程
131

在 PHP 中导出 Excel 文件可以使用多种库,其中最流行的是 PhpSpreadsheet。这个库是由 PHPExcel 演变而来的,功能强大且适用于各种 Excel 操作。下面是一个简单的示例,展示如何使用 PhpSpreadsheet 库来创建和导出一个 Excel 文件。

1. 安装 PhpSpreadsheet

首先,使用 Composer 安装 PhpSpreadsheet 库。如果你还没有安装 Composer,你需要先安装它。然后在你的项目目录中运行以下命令:
composer require phpoffice/phpspreadsheet

2. 创建并导出 Excel 文件

接下来,在你的 PHP 文件中使用 PhpSpreadsheet 创建和导出一个 Excel 文件。以下是一个示例代码:
 

<?php
 
require 'vendor/autoload.php';
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
// 创建一个新的电子表格对象
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
 
// 设置单元格的值
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B1', 'World!');
 
// 如果有更多数据,可以用循环设置单元格的值
$data = [
    ['Name', 'Age', 'Email'],
    ['John Doe', 28, 'john@example.com'],
    ['Jane Smith', 32, 'jane@example.com'],
];
 
$row = 1;
foreach ($data as $rowData) {
    $col = 'A';
    foreach ($rowData as $cellData) {
        $sheet->setCellValue($col . $row, $cellData);
        $col++;
    }
    $row++;
}
 
// 将电子表格保存为文件
$writer = new Xlsx($spreadsheet);
$filename = 'example.xlsx';
 
// 将文件保存到服务器
$writer->save($filename);
 
// 或者直接输出到浏览器进行下载
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
 
$writer->save('php://output');
exit;
3. 解释代码
require 'vendor/autoload.php';:加载 Composer 自动加载文件。
use PhpOffice\PhpSpreadsheet\Spreadsheet; 和 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;:导入必要的类。
new Spreadsheet();:创建一个新的电子表格对象。
getActiveSheet():获取当前活跃的工作表。
setCellValue('A1', 'Hello');:设置单元格的值。
使用循环将数组中的数据写入电子表格。
new Xlsx($spreadsheet);:创建一个 Xlsx 写入器。
save($filename);:将文件保存到服务器。
如果希望用户下载文件,设置相应的 HTTP 头,并将文件内容输出到浏览器。
这样,你就可以轻松地使用 PHP 将数据导出到 Excel 文件中并提供下载了。

除了使用 PhpSpreadsheet 库,导出 Excel 文件的其他方法包括使用一些更简单的、特定场景下的方法,例如生成 CSV 文件或使用旧版的 PHPExcel 库(尽管它已经不再维护)。下面介绍几种方法:

1. 生成 CSV 文件

CSV(Comma-Separated Values)文件是一种简单且广泛支持的格式,可以用 Excel 打开。以下是一个示例,展示如何生成并下载 CSV 文件:
<?php
 
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename="example.csv"');
 
$output = fopen('php://output', 'w');
 
// 写入 CSV 文件的头部
fputcsv($output, ['Name', 'Age', 'Email']);
 
// 写入数据
$data = [
    ['John Doe', 28, 'john@example.com'],
    ['Jane Smith', 32, 'jane@example.com'],
];
 
foreach ($data as $row) {
    fputcsv($output, $row);
}
 
fclose($output);
exit;
2. 使用旧版 PHPExcel 库
虽然 PHPExcel 已经被 PhpSpreadsheet 取代,但如果你已经在使用 PHPExcel 或者项目中依赖它,也可以继续使用。确保你已经安装了 PHPExcel,可以通过 Composer 或其他方式安装。

以下是一个使用 PHPExcel 的示例:
 
<?php
 
require 'path/to/PHPExcel.php';
 
// 创建一个新的 PHPExcel 对象
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
 
// 设置单元格的值
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');
$objPHPExcel->getActiveSheet()->setCellValue('B1', 'World!');
 
// 如果有更多数据,可以用循环设置单元格的值
$data = [
    ['Name', 'Age', 'Email'],
    ['John Doe', 28, 'john@example.com'],
    ['Jane Smith', 32, 'jane@example.com'],
];
 
$row = 1;
foreach ($data as $rowData) {
    $col = 'A';
    foreach ($rowData as $cellData) {
        $objPHPExcel->getActiveSheet()->setCellValue($col . $row, $cellData);
        $col++;
    }
    $row++;
}
 
// 将电子表格保存为文件
$filename = 'example.xlsx';
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
 
The End

相关推荐

php实现多语言网站的思路和构想
我们在进行系统或者网站开发的时候,有需要多语言切换的功能。PHP作为一种常用的编程语言,可以很方便地实现多语言网站功能。本文将介绍如何使用PHP实现多语言网站功能,并提供相应的代码示例。 创建语言文件 首先,需要创建不同语言的语言文件。每个语言文件...
2025-08-20 php编程
83

PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目
PHP+HTML集成DeepSeek API,实现一个简单的聊天对话项目,最终实现效果如下: 准备工作 PHP环境 :确保你的开发环境中安装了PHP。 DeepSeek API密钥 :注册并获取DeepSeek API的访问密钥。 创建api调用接口 创建一个PHP脚本(api.php),用于调用DeepSeek API...
2025-03-31 php编程
100

PHP怎么删除系统中的文件和目录
我们在使用php编程时候,有时候需要删除系统中某个目录。在php中,删除目录是通过使用一些内置函数来完成的。本文将介绍如何使用php中的内置函数删除目录。 一、unlink()函数 PHP中的unlink()函数可以用于删除一个文件,而当用于删除目录时,它只能删除目录...
2025-02-21 php编程
184

PHP如何使用session实现保存用户登录信息
session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。 使用session保存页面登录信息 1、数据库连接配置页面:connectvars.php ?php/...
2024-11-05 php编程
95

PhpSpreadsheet生成Excel时实现单元格自动换行
PhpSpreadsheet是PHPExcel的替代版本,PHPExcel的作者已经停止了更新,今天尝试了使用PhpSpreadsheet生成Excel的时候支持单元格内的自动换行,发现用法其实差不多。 先来看一下Excel单元格中的换行,手工输入Alt+Enter可以进行换行,实际上是选择了一个自动...
2024-11-03 php编程
109

php将json数据保存在MySQL中并读取
使用PHP将JSON数据保存在MySQL中,可以按照以下步骤进行操作: 解析JSON数据:使用PHP的json_decode函数将JSON数据解析为PHP数组或对象,方便后续处理。 连接MySQL数据库:使用PHP的mysqli或PDO扩展连接到MySQL数据库。可以使用以下代码示例连接到MySQL数据...
2024-10-18 php编程
221