使用PhpSpreadsheet导入和导出Excel
封面图
•
2025-11-27
•
PHP
227
0
0
0
使用 **PhpSpreadsheet**(原名 PHPExcel)可以非常方便地进行 Excel 文件的导入和导出。以下是使用 PhpSpreadsheet 进行 **导入 Excel** 和 **导出 Excel** 的基本示例。 --- ## ✅ 一、安装 PhpSpreadsheet 你可以通过 Composer 安装 PhpSpreadsheet: ```bash composer require phpoffice/phpspreadsheet ``` --- ## ✅ 二、导出 Excel(从数据库导出) ### 示例:将数据库数据导出为 Excel 文件 ```php <?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // 假设你有一个数据库连接 $pdo = new PDO("mysql:host=localhost;dbname=test", "username", "password"); // 查询数据 $stmt = $pdo->query("SELECT * FROM users"); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); // 创建 Excel 对象 $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // 设置表头 $headers = array_keys($data[0]); $sheet->fromArray($headers, null, 'A1'); // 填充数据 $sheet->fromArray($data, null, 'A2'); // 导出为 Excel 文件 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="users.xlsx"'); header('Cache-Control: max-age=0'); $writer = new Xlsx($spreadsheet); $writer->save('php://output'); exit; ``` --- ## ✅ 三、导入 Excel(读取 Excel 文件) ### 示例:从上传的 Excel 文件中读取数据 ```php <?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\IOFactory; if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['excel_file'])) { $file = $_FILES['excel_file']['tmp_name']; // 加载 Excel 文件 $spreadsheet = IOFactory::load($file); $sheet = $spreadsheet->getActiveSheet(); // 获取所有数据 $data = $sheet->toArray(); // 第一行是标题,跳过 $rows = array_slice($data, 1); // 处理数据... foreach ($rows as $row) { echo "ID: " . $row[0] . ", Name: " . $row[1] . "<br>"; } } ?> <!-- HTML 表单 --> <form method="post" enctype="multipart/form-data"> <input type="file" name="excel_file" /> <button type="submit">上传</button> </form> ``` --- ## ✅ 四、注意事项 - 如果你的 Excel 文件有多个 sheet,可以通过 `$spreadsheet->getSheetNames()` 获取所有 sheet 名称,然后用 `$spreadsheet->setActiveSheetIndexByName('Sheet1')` 来选择特定 sheet。 - 支持格式:`.xlsx`, `.xls`, `.csv` 等。 - 可以设置单元格样式、合并单元格、字体颜色等,更复杂的操作可参考 [PhpSpreadsheet 官方文档](https://phpspreadsheet.readthedocs.io/) --- ## ✅ 五、完整示例结构 ``` project/ ├── index.php # 导出示例 ├── import.php # 导入示例 └── vendor/ # Composer 安装的 PhpSpreadsheet ``` --- 如果你有具体的需求(比如处理大量数据、生成复杂格式、支持中文等),我可以提供更详细的代码示例。 是否需要我帮你写一个完整的导入导出功能?
上一篇:
php怎么实现隐藏部分字符
下一篇:
php openssl_decrypt() 代替 mcrypt_module_open() 方法
标题录入,一次不能超过6条
留言
评论