문제

나는 요즘 PHP -MS Excel 통합을 가지고 놀고 있습니다. 내 임무는 기존 스프레드 시트를 열고 데이터를 추가하고 채워진 스프레드 시트를 새 파일로 저장하는 것입니다. 기본적으로 일종의 템플릿 충전 엔진, 이벤트 XLSX 파일은 템플릿으로 사용됩니다.

나는 조사했다 phpexcel 상당히 좋은 프레임 워크 인 것 같습니다. 개념 증명을 구현하기 위해 나는 다음을 수행했다 (내가해야 할 일을 설명하는 데 필요한 최소로 줄었다).

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);  
$objPHPExcel = $objReader->load("myTemplateToFill.xlsx");

    //Here comes the actual filling
$objWorksheet = $objPHPExcel->createSheet();
$objWorksheet->setTitle('Apple')    ;
$objWorksheet->setCellValue('A1', 'Banana');    
$objPHPExcel->setActiveSheetIndex(0);

$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
$objWriter->save('myFilledTemplate.xlsx');

이것을 실행하면 새 파일이 생성된다는 것을 알았으며, 내 DAAT가 삽입되었지만 슬프게 기존 형식이 손실됩니다.

문제는 phpexcel을 새 파일에 유지하는 방법이 있습니까? 아니면 더 나아가서 : 차트 등을 템플릿 파일에 유지하고 내가 시도한 방식으로 채울 수 있습니까?

모든 경험을 공유해 주셔서 감사합니다!

케이

도움이 되었습니까?

해결책

Hum, 당신은 새로운 워크 시트를 만들고 있습니다. Wich는 기본적으로 형식이 없습니다. 기존 시트에 값을 추가해야한다고 생각하십니까?

$objPHPExcel->setActiveSheetIndex(0); // index of sheet
$workSheet = $objPHPExcel->getActiveSheet();
$workSheet->setTitle('Pflaume');

다른 팁

이 줄로 인해 서식이 손실됩니다. $ objreader-> setReadDataOnly (true); 독자에게 읽도록 지시합니다 서식이 아닌 템플릿 통합 문서의 데이터.

또한 기존 워크 시트에서 데이터를 수정해야합니다. 새 워크 시트를 만들면 형식화되지 않은 워크 시트가 생성됩니다. 또는 phpexcel_worksheet copy () 메소드를 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top