导入2 .csv以分隔工作表的PHPExcel问题

时间:2016-01-27 07:48:42

标签: php phpexcel

使命:我需要添加2个.csv文件来分隔工作表 问题:第二次导入会删除第二张创建的工作表并将信息放在第一张工作表

$inputFileType = 'CSV'; 
$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
$objReader->setDelimiter(';'); 
$objPHPExcel = $objReader->load('fail1.csv');     
$objPHPExcel->getActiveSheet()->setTitle('laoseis'); 


//teine leht 
$objPHPExcel->createSheet(); 
$objPHPExcel->setActiveSheetIndex(1);     

$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
$objReader->setDelimiter(';'); 
$objPHPExcel->setActiveSheetIndex(1); 
$objPHPExcel = $objReader->load('fail2.csv'); 

$date = new DateTime($_GET['startDate']); 
$objPHPExcel->getActiveSheet()->setTitle('Müük W'.$date->format("W").''); 

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

PHPExcel不会将第二个文件加载到现有PHPExcel对象中的当前工作表中,它会创建一个新的PHPExcel对象并将文件加载到该文件中,因此当您尝试将该文件完全替换为第一个文件时加载第二个。

将每个csv加载到单独的PHPExcel实例,然后将工作表从第二个实例复制到第一个实例。

$objReader1 = PHPExcel_IOFactory::createReader($inputFileType); 
$objPHPExcel1 = $objReader1->load('fail1.csv');     

$objReader2 = PHPExcel_IOFactory::createReader($inputFileType); 
$objPHPExcel2 = $objReader2->load('fail2.csv');

$objPHPExcel2->getActiveSheet()->setTitle('Worksheet 2');
$objPHPExcel1->addExternalSheet($objPHPExcel2->getActiveSheet());

现在$objPHPExcel1有两个工作表,您可以保存