插件窝 干货文章 php csv转化excel格式文件格式

php csv转化excel格式文件格式

文件 PhpSpreadsheet CSV Excel 282    来源:    2025-03-19

在PHP中,将CSV文件转换为Excel格式(如.xlsx)可以使用第三方库,如PhpSpreadsheetPhpSpreadsheet是一个强大的PHP库,支持读取和写入多种电子表格格式,包括Excel、CSV、ODS等。

以下是一个简单的示例,展示如何使用PhpSpreadsheet将CSV文件转换为Excel格式(.xlsx):

1. 安装PhpSpreadsheet

首先,你需要通过Composer安装PhpSpreadsheet库。如果你还没有安装Composer,请先安装它。

composer require phpoffice/phpspreadsheet

2. 编写PHP代码

接下来,编写PHP代码来读取CSV文件并将其转换为Excel格式。

<?php

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;

// CSV文件路径
$csvFilePath = 'input.csv';

// 创建一个新的Spreadsheet对象
$spreadsheet = new Spreadsheet();

// 读取CSV文件
$reader = IOFactory::createReader('Csv');
$reader->setInputEncoding('UTF-8'); // 设置编码
$reader->setDelimiter(','); // 设置分隔符
$reader->setEnclosure('"'); // 设置包围符
$reader->setSheetIndex(0); // 设置工作表索引

// 将CSV文件加载到Spreadsheet对象中
$spreadsheet = $reader->load($csvFilePath);

// 设置Excel文件路径
$excelFilePath = 'output.xlsx';

// 使用Xlsx写入器保存为Excel文件
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save($excelFilePath);

echo "CSV文件已成功转换为Excel文件: $excelFilePath\n";

3. 运行代码

将上述代码保存为一个PHP文件(例如convert_csv_to_excel.php),然后在命令行或浏览器中运行它。

php convert_csv_to_excel.php

运行后,CSV文件将被转换为Excel格式,并保存为output.xlsx

4. 注意事项

  • 确保CSV文件的路径正确。
  • 如果CSV文件包含特殊字符或非UTF-8编码,可能需要调整setInputEncoding方法。
  • PhpSpreadsheet支持多种格式的读写,你可以根据需要选择不同的读写器。

5. 其他格式

如果你需要将Excel文件转换为其他格式(如.csv.ods等),可以使用PhpSpreadsheet提供的其他写入器。例如,将Excel文件保存为CSV格式:

$writer = IOFactory::createWriter($spreadsheet, 'Csv');
$writer->save('output.csv');

通过这种方式,你可以轻松地在PHP中处理各种电子表格格式的转换。