插件窝 干货文章 php如何将csv转换成xls

php如何将csv转换成xls

文件 PhpSpreadsheet Spreadsheet CSV 332    来源:    2025-03-18

在PHP中,你可以使用第三方库来将CSV文件转换为XLS格式。一个常用的库是 PhpSpreadsheet,它是 PHPExcel 的继任者。以下是一个简单的示例,展示如何使用 PhpSpreadsheet 将CSV文件转换为XLS文件。

步骤1:安装 PhpSpreadsheet

首先,你需要通过 Composer 安装 PhpSpreadsheet。如果你还没有安装 Composer,可以从 Composer 官网 下载并安装。

在项目目录下运行以下命令来安装 PhpSpreadsheet

composer require phpoffice/phpspreadsheet

步骤2:编写PHP代码

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

<?php

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xls;

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

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

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

$spreadsheet = $reader->load($csvFilePath);

// 创建一个XLS写入器
$writer = new Xls($spreadsheet);

// 保存为XLS文件
$outputFilePath = 'output.xls';
$writer->save($outputFilePath);

echo "CSV文件已成功转换为XLS文件: $outputFilePath";

代码说明

  1. 引入依赖:通过 require 'vendor/autoload.php'; 引入 PhpSpreadsheet 的自动加载文件。
  2. 创建Spreadsheet对象:使用 new Spreadsheet() 创建一个新的电子表格对象。
  3. 读取CSV文件:使用 IOFactory::createReader('Csv') 创建一个CSV读取器,并设置编码、分隔符和包围符等参数。
  4. 保存为XLS文件:使用 Xls 写入器将电子表格保存为XLS文件。

步骤3:运行代码

将上述代码保存为一个PHP文件(例如 convert_csv_to_xls.php),然后在命令行或浏览器中运行该文件。运行后,CSV文件将被转换为XLS文件并保存到指定路径。

注意事项

  • 确保CSV文件的路径正确。
  • 如果CSV文件较大,可能需要调整PHP的内存限制和执行时间限制。
  • PhpSpreadsheet 支持多种格式的读写,包括XLSX、CSV、ODS等。

通过这种方式,你可以轻松地将CSV文件转换为XLS文件。