2016-01-19 74 views
0

我使用下面的代码将xls文件转换为csv文件。 这适用于第一张纸,但我有几个需要做的。这些表将始终是相同的名称。 有没有做所有的床单,而不是只做第一个活动床单。使用PHPExcel将多个xls文件转换为csv

require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php'; 
$excel = PHPExcel_IOFactory::load("all-euro-data-2015-2016.xls"); 
$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV'); 
$writer->setDelimiter(";"); 
$writer->setEnclosure(""); 
$writer->save("test123.csv"); 

回答

2

此时您只写活动工作表。你必须迭代excel文件中的不同工作表并将它们写入单独的csv文件。

foreach ($excel->getWorksheetIterator() as $workSheetIndex => $worksheet) { 
    $excel->setActiveSheetIndex($workSheetIndex);  
    $writer->setSheetIndex($index); 
    $writer->save("test123_" . $worksheet->getTitle() . ".csv");  
} 
+0

'code' require_once'PHPExcel/Classes/PHPExcel/IOFactory.php'; $ excel = PHPExcel_IOFactory :: load(“all-euro-data-2015-2016.xls”); $ writer = PHPExcel_IOFactory :: createWriter($ excel,'CSV'); ($ excel-> getWorksheetIterator()as $ workSheetIndex => $ worksheet){excel-> setActiveSheetIndex($ workSheetIndex); $ writer-> setSheetIndex($ index); $ writer-> save(“test123_”。$ worksheet-> getTitle()。“.csv”); }'code' –

+0

这是我做的,但我刚刚得到的错误: 注意:未定义的变量:指数/home/admin/JARRATTPERKINS.COM/xls2csv.php第8行 注意:未定义指数: in /home/admin/JARRATTPERKINS.COM/PHPExcel/Classes/PHPExcel.php on line 581 致命错误:在/home/admin/JARRATTPERKINS.COM/PHPExcel/中的非对象上调用成员函数getHighestDataColumn()班级/ PHPExcel/Writer/CSV.php在线128 什么是索引应该是? –

+1

将索引添加为$ index ++ –

0

我不熟悉PHPExcel,但分隔符应该是逗号而不是CSV文件的分号。