2009-12-07 4 views
3

요즘 PHP - MS Excel 통합으로 놀고 있습니다. 내 작업 은 기존 스프레드 시트를 열고 일부 데이터를 추가하고 채워진 스프레드 시트를 새 파일로 저장합니다. 기본적으로 템플릿 채우기 엔진 일종의 xhtml xlsx 파일이 템플릿으로 사용됩니다.PHPExcel - 코드에서 편집 할 때 서식이 손실 됨

나는 꽤 좋은 프레임 워크 인 것처럼 보이는 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을 새로운 파일에 보관하는 방법이 있습니까? 또는 더 나아가 야 할 것 : 차트 파일 등을 템플릿 파일 에 보관하고 시도한 방식대로 채울 수 있습니까?

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

K

답변

2

흠, 당신은 느릅 나무는 기본적으로 어떤 형식을 가지고 있지 새 워크 시트를 만들 수 있습니다. 기존 시트에 값을 추가해야한다고 생각하십니까?

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

안녕하세요. 기본적으로 문제는 기존 페이지의 서식이 손실된다는 것입니다. 내 데이터 삽입이 정상적으로 작동합니다. – KB22

+0

예, 새 워크 시트를 만들기 때문에 값을 추가 할 기존 워크 시트를 사용해야합니다. – opHASnoNAME

6

서식 때문에이 라인의 손실 $ objReader-> setReadDataOnly (TRUE); 은 서식 파일이 아니라 서식 파일 통합 문서의 데이터 만 읽도록합니다.

또한 기존 워크 시트의 데이터를 수정해야합니다. 새 워크 시트를 작성하면 서식없는 워크 시트가 작성됩니다. 또는 PHPExcel_WorkSheet copy() 메소드를 사용할 수 있습니다.

관련 문제