Как конвертировать Excel XLS в CSV с помощью PHP - PullRequest
25 голосов
/ 14 октября 2011

Может кто-нибудь подсказать мне, как конвертировать XLS в CSV с помощью PHP?

У меня есть таблица Excel, содержащая список документов, я хочу преобразовать ее в формат CSV с помощью PHP.

Ответы [ 4 ]

19 голосов
/ 18 ноября 2013

Это наверняка сработает,

require_once 'Classes/PHPExcel/IOFactory.php';

$inputFileType = 'Excel5';
$inputFileName = 'YOUR_EXCEL_FILE_PATH';

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcelReader = $objReader->load($inputFileName);

$loadedSheetNames = $objPHPExcelReader->getSheetNames();

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcelReader, 'CSV');

foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
    $objWriter->setSheetIndex($sheetIndex);
    $objWriter->save($loadedSheetName.'.csv');
}

Надеюсь, это поможет ...

11 голосов
/ 22 марта 2018

Переписать код, предоставленный @Rajat Modi, используя библиотеку PhpSpreadsheet, поскольку PHPExcel устарел.

https://github.com/PHPOffice/PhpSpreadsheet

https://phpspreadsheet.readthedocs.io/en/develop/

<?php 

require 'vendor\autoload.php';

use \PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use \PhpOffice\PhpSpreadsheet\Writer\Csv;

$xls_file = "Example.xlsx";

$reader = new Xlsx();
$spreadsheet = $reader->load($xls_file);

$loadedSheetNames = $spreadsheet->getSheetNames();

$writer = new Csv($spreadsheet);

foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
    $writer->setSheetIndex($sheetIndex);
    $writer->save($loadedSheetName.'.csv');
}
10 голосов
/ 14 октября 2011

Возможно, вы можете начать чтение XLS, используя PHP .

Затем, используя основную логику, выведите то, что вы хотите (csv в вашем случае).

Хорошоудачи,

4 голосов
/ 14 октября 2011

Вы можете использовать библиотеку php PHPExcel , чтобы прочитать файл Excel, просто зациклить строки и ячейки и просто записать данные в файл CSV?

...