PHPExcel - 将4个CSV文件读入包含4个电子表格的单个工作簿中

时间:2011-11-29 08:24:40

标签: php csv phpexcel

我需要使用PHPExcel将4个CSV文件聚合到一个Excel工作簿中。

处理单个CSV文件和单电子表格工作簿一切正常。 使用多个CSV,我无法将每个CSV文件分成单独的表格。

如何使用PHPExcel实现此目的?

2 个答案:

答案 0 :(得分:4)

在PHPEX的SVN存储库的Documentation / Examples / Readers目录中有一个例子:它的例子#13

include 'PHPExcel/IOFactory.php';


$inputFileType = 'CSV';
$inputFileNames = array('./example1.csv','./example2.csv','./example3.csv','./example4.csv');

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$inputFileName = array_shift($inputFileNames);
$objPHPExcel = $objReader->load($inputFileName);
$objPHPExcel->getActiveSheet()->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));
foreach($inputFileNames as $sheet => $inputFileName) {
    $objReader->setSheetIndex($sheet+1);
    $objReader->loadIntoExisting($inputFileName,$objPHPExcel);
    $objPHPExcel->getActiveSheet()->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));
}


$loadedSheetNames = $objPHPExcel->getSheetNames();
foreach($loadedSheetNames as $sheetIndex => $loadedSheetName) {
    $objPHPExcel->setActiveSheetIndexByName($loadedSheetName);
    echo $loadedSheetName,PHP_EOL;
    $sheetData = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
    var_dump($sheetData);
    echo PHP_EOL;
}

答案 1 :(得分:0)

您没有明确指出问题所在......
对于多个工作表excel文件,请执行以下操作:

  1. 加载CSV文件
  2. 创建新工作表
  3. 将CSV写入新工作表
  4. 转到1
  5. 来自docs:
    如果您需要在工作簿中创建更多工作表,请按以下步骤操作:

    $objWorksheet1 = $objPHPExcel->createSheet();
    $objWorksheet1->setTitle('Another sheet');
    

    设置有效工作表:

    $objWorksheet1->setActiveSheetIndex($index);