Csv для преобразования
Есть ли способ конвертировать файл csv в файл excel по запросу через apache/.htaccess
Ответы
Ответ 1
Использование PHPExcel
include 'PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('CSV');
// If the files uses a delimiter other than a comma (e.g. a tab), then tell the reader
$objReader->setDelimiter("\t");
// If the files uses an encoding other than UTF-8 or ASCII, then tell the reader
$objReader->setInputEncoding('UTF-16LE');
$objPHPExcel = $objReader->load('MyCSVFile.csv');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('MyExcelFile.xls');
Ответ 2
Примечание: PHPExcel теперь указан как УСТАРЕЛО.
Пользователи направляются на PhpSpreadsheet.
Ответ 3
Да, поскольку apache является открытым исходным кодом, вы можете модифицировать парсер .htaccess, чтобы вызвать библиотеку для преобразования ваших CSV файлов в файлы excel. Но я не думаю, что это то, что вы ищете.: -).
Я думаю, что вам действительно нужен динамичный веб-сайт. Затем вы можете использовать PHP или любой поддерживаемый язык, чтобы делать то, что вам нужно.
что-то вроде этого:
http://www.westwideweb.com/wp/2009/01/12/convert-csv-to-xls-excel-in-php/
Ответ 4
В sourceforge есть проект, который выполняет это преобразование:
http://sourceforge.net/projects/py-csv2xls/
Но для преобразования вам нужно сделать динамическую страницу в apache (в python, php...)
Ответ 5
PHPExcel устарела. Вы должны использовать PhpSpreadsheet.
С PhpSpreadsheet вы можете конвертировать csv в xlsx с помощью следующего кода:
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Csv');
// If the files uses a delimiter other than a comma (e.g. a tab), then tell the reader
// $reader->setDelimiter("\t");
// If the files uses an encoding other than UTF-8 or ASCII, then tell the reader
// $reader->setInputEncoding('UTF-16LE');
$objPHPExcel = $reader->load('/home/superman/projects/test/csv-app/file.csv');
$objWriter = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($objPHPExcel, 'Xlsx');
$objWriter->save('excel_file.xlsx');