PHPExcel将多张xlsx转换为csv
我用这几行代码来转换xlsx,其中包含4张要转换为.csv的图纸。但它只转换xlsx文件的第一页。如何转换xlsx中的每张图纸。这是密码PHPExcel将多张xlsx转换为csv,php,phpexcel,Php,Phpexcel,我用这几行代码来转换xlsx,其中包含4张要转换为.csv的图纸。但它只转换xlsx文件的第一页。如何转换xlsx中的每张图纸。这是密码 error_reporting(E_ALL); date_default_timezone_set($this->vendor_timezone); /** PHPExcel_IOFactory */ require_once sfConfig::get('sf_root_dir').'/lib/PHPExcel/IOFac
error_reporting(E_ALL);
date_default_timezone_set($this->vendor_timezone);
/** PHPExcel_IOFactory */
require_once sfConfig::get('sf_root_dir').'/lib/PHPExcel/IOFactory.php';
$file=sfConfig::get("sf_upload_dir").DIRECTORY_SEPARATOR."temp".DIRECTORY_SEPARATOR."1344500254_MyExcel.xlsx";
// Check prerequisites
//print sfConfig::get("sf_upload_dir").DIRECTORY_SEPARATOR."temp".DIRECTORY_SEPARATOR; exit;
if (!file_exists($file)) {
exit($file."Please run 06largescale.php first.\n");
}
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($file);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->save(str_replace('.xlsx', '.csv',$file));
return "success";
将每张工作表依次写入不同的文件,然后将这些文件合并为一个文件:PHPExcel不提供将多张工作表写入单个CSV文件的选项。将每张工作表依次写入不同的文件,然后将这些文件合并为一个文件:PHPExcel不提供将多个工作表写入单个CSV文件的选项。请查看此处的教程,其中有逐步实现此目的的代码
<?php
require_once 'PHPExcel/PHPExcel/IOFactory.php';
$excel = PHPExcel_IOFactory::load("test123.xlsx");
$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->setDelimiter(";");
$writer->setEnclosure("");
$writer->save("test123.csv");
?>
请检查这里的教程,它有一步一步的代码来实现这一点
<?php
require_once 'PHPExcel/PHPExcel/IOFactory.php';
$excel = PHPExcel_IOFactory::load("test123.xlsx");
$writer = PHPExcel_IOFactory::createWriter($excel, 'CSV');
$writer->setDelimiter(";");
$writer->setEnclosure("");
$writer->save("test123.csv");
?>
要转换所有工作表,必须遍历所有工作表并将其设置为活动工作表,然后将其写入文件
$inFile = 'fileWithMultipleWorksheet.xlsx';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($inFile);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$index = 0;
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$objPHPExcel->setActiveSheetIndex($index);
// write out each worksheet to it's name with CSV extension
$outFile = str_replace(array("-"," "), "_", $worksheet->getTitle()) .".csv";
$objWriter->setSheetIndex($index);
$objWriter->save($outFile);
$index++;
}
要转换所有工作表,必须遍历所有工作表并将其设置为活动工作表,然后将其写入文件
$inFile = 'fileWithMultipleWorksheet.xlsx';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($inFile);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$index = 0;
foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) {
$objPHPExcel->setActiveSheetIndex($index);
// write out each worksheet to it's name with CSV extension
$outFile = str_replace(array("-"," "), "_", $worksheet->getTitle()) .".csv";
$objWriter->setSheetIndex($index);
$objWriter->save($outFile);
$index++;
}
哦,这就是为什么。太糟糕了。在使用转换之前,我先指定了图纸。非常感谢!只是想澄清一下,没有办法写入单个CSV,但如果你看我的答案,你可以很容易地将每张纸写入不同的CSV文件。哦,这就是原因。太糟糕了。在使用转换之前,我先指定了图纸。非常感谢!要清楚的是,没有办法写入单个CSV,但如果你看我的答案,你可以很容易地将每个工作表写入不同的CSV文件。excel工作表中的整行转换为单个索引,所有列变为单个值excel工作表中的整行转换为单个索引,所有列变为单个值