2013-10-05 4 views
0

여러 엑셀 시트의 워크 시트를 새로운 Excel 파일의 워크 시트 1 개로 병합하고 싶습니다. PHPExcel을 사용하여 워크 시트 병합

나는 토론 https://phpexcel.codeplex.com/discussions/390898

내가 MarkBaker이 toArray를 사용하여 무슨 뜻인지 이해하지 못했다() 함. 나는 그것을 어떻게 사용하는지 의미한다. 내 현재 코드는 다음과 같습니다이와

$file1="file1.xlsx"; 
$objPHPExcel1 = PHPExcel_IOFactory::load($file1); 
$file2="file2.xlsx"; 
$outputFile = "output.xlsx"; 

$objPHPExcel2 = PHPExcel_IOFactory::load($file2); 
$sheet = $objPHPExcel2->getActiveSheet(); 
$objPHPExcel1->addExternalSheet($sheet); 

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel1); 
$objWriter->save($outputFile); 

나는 새 통합 문서 있지만 서로 다른 시트로 다양한 파일의 서로 다른 워크 시트를 얻을 수 있어요.

vitman이 말한 것처럼 같은 시트에 모든 것을 가져 오려면 어떻게해야합니까? first_excel_file_with_one_worksheet --empty line-- second_excel_file_with_one_worksheet --empty line-- 등

답변

0

$filenames = array('doc1.xlsx', 'doc2.xlsx'); 

$bigExcel = new PHPExcel(); 
$bigExcel->removeSheetByIndex(0); 

$reader = PHPExcel_IOFactory::createReader($input_file_type); 

foreach ($filenames as $filename) { 
    $excel = $reader->load($filename); 

    foreach ($excel->getAllSheets() as $sheet) { 
     $bigExcel->addExternalSheet($sheet); 
    } 

    foreach ($excel->getNamedRanges() as $namedRange) { 
     $bigExcel->addNamedRange($namedRange); 
    } 
} 

$writer = PHPExcel_IOFactory::createWriter($bigExcel, 'Excel5'); 

$file_creation_date = date("Y-m-d"); 

// name of file, which needs to be attached during email sending 
$saving_name = "Report_Name" . $file_creation_date . '.xls'; 


// save file at some random location  
$writer->save($file_path_location . $saving_name); 

// More Detail : with different object: 

가 하나 하나에 여러 XLS 파일을 병합 사무실 사이트에서

// 업데이트가 여기에 설명되어 있습니다 : 조금 다른 설명을 드리겠습니다. http://rosevinod.wordpress.com/2014/03/15/combine-two-or-more-xls-files-as-worksheets-phpexcel/

관련 문제