将 2 .csv导入单独的工作表的 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").''); 

如何解决这个问题?

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同时拥有两个工作表,您可以保存它

最新更新