PHPExcel将多张xlsx转换为csv

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

我用这几行代码来转换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/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工作表中的整行转换为单个索引,所有列变为单个值