是否可以通过apache/.htaccess在请求时将csv文件转换为excel文件?
是否可以通过apache/.htaccess在请求时将csv文件转换为excel文件?
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');
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');
require '../../vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
/* Set CSV parsing options */
$reader->setDelimiter(',');
$reader->setEnclosure('"');
$reader->setSheetIndex(0);
/* Load a CSV file and save as a XLS */
$spreadsheet = $reader->load('../../uploads/test.csv');
$writer = new Xlsx($spreadsheet);
$writer->save('test.xlsx');
$spreadsheet->disconnectWorksheets();
unset($spreadsheet);
是的,由于Apache是开源的,您可以修改.htaccess解析器以调用库将CSV文件转换为Excel文件。但我认为这不是您要寻找的。 :-).
我认为您真正需要的是一个动态网站。然后,您可以使用PHP或任何支持的语言来完成所需的操作。
像这样的东西: http://www.westwideweb.com/wp/2009/01/12/convert-csv-to-xls-excel-in-php/
有一个在sourceforge上的项目可以进行这种转换:
http://sourceforge.net/projects/py-csv2xls/
但是为了进行转换,您需要在Apache中创建一个动态页面(使用Python、PHP等)