PHPExcel конвертировать XLS в CSV со специальными символами

У меня небольшая проблема при преобразовании файла XLS, содержащего специальные символы, в файл CSV с использованием классов PHPExcel.

В качестве примера название «Кевин» дает «Кевин» в сгенерированном CSV-файле.

Вот мой текущий код PHP с использованием PHPExcel:

$excel_readers = array(
'Excel5' ,
'Excel2003XML' ,
'Excel2007'
);

require_once('classes/PHPExcel.php');

$reader = PHPExcel_IOFactory::createReader('Excel5');
$reader->setReadDataOnly(true);

$path = $_FILES['file']['tmp_name'];
$excel = $reader->load($path);

$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->save('temp/absences.csv');

echo 'File saved to csv format';

2

Решение

<?php

/**
Convert excel file to csv
*/

//Various excel formats supported by PHPExcel library
$excel_readers = array(
'Excel5' ,
'Excel2003XML' ,
'Excel2007'
);

require_once('PHPExcel180/Classes/PHPExcel.php');
require_once('PHPExcel180/Classes/PHPExcel/Writer/CSV.php');

$reader = PHPExcel_IOFactory::createReader('Excel5');
$reader->setReadDataOnly(false);

$path = 'file.xls';
$excel = $reader->load($path);

$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->setUseBOM(true);
$writer->save('data.csv');

echo 'File saved to csv format';
?>

PHPExcel_1.8.0_doc
Код использования библиотеки

Убирает специальные символы при конвертации из одного xls в csv, конец кода

3

Другие решения

Содержимое электронной таблицы будет сохранено в файле CSV в кодировке UTF-8.

При желании, вы можете сказать CSV Writer, чтобы написать спецификацию

$writer->setUseBOM(true);

Но приложения должны читать этот файл, чтобы правильно обрабатывать его как данные UTF-8. Такие приложения, как MS Excel, должны обрабатывать его должным образом, но текстовые редакторы, такие как блокнот, не распознают данные UTF-8.

3

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector