2012-08-24 3 views
4

내 프로젝트에서 Excel5를 사용하고 있습니다.PhpExcel에서 셀 배경색 가져 오기

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->getARGB(); 

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getEndColor()->getARGB(); 

그러나이 코드는 잘못된 색상을 반환하는 : 이미 다음과 같은 코드를 시도했습니다. getStartColor()은 항상 빨간색 대신 FFFFFFFFFF000000getEndColor()으로 반환합니다.

나는 무엇이 빠졌는지 모른다. 어느 누구도 이것을 알아낼 수 있습니까?

+2

setReadDataOnly (TRUE)로 파일을 읽으십니까? 그렇지 않은 경우 solidfill red/yellow/green/blue를 사용하여 간단한 테스트를 수행했으며 위 코드는 FFFF0000, FF00B050, FFFFFF00 및 FF0070C0을 반환합니다. –

+0

예 setReadDataOnly()가 true로 설정됩니다. Excel 2002를 사용하고 있는데 getFill 함수가 사용중인 버전에서 제대로 작동하는지 알 수 없습니다. –

답변

7

setReadDataOnly (TRUE)을 ... 만 데이터 셀로부터하지만 스타일링 중에 읽기 수단과 배경색이 스타일의 일부로서 파일을로드 할 때 리더는 배경색을 무시할 것이다. .. 채우기 스타일이로드되어 있지 않으면 $ objPHPExcel-> getActiveSheet() -> getStyle ('A1') -> getFill()을 호출하면 기본 채우기 스타일과 색상이 반환됩니다.

로드 setReadDataOnly (FALSE)로 파일 당신은 작동 찾아야한다

편집

이 PHPExcel의 범위 .... 모든 것이, DDE를 통해 인구의 대부분을 포함한다 넘어 방법입니다 따라서 외부 실행 파일 인 TOS.exe가 데이터를 채우고 그에 따라 스타일을 설정할 때까지 기본 채우기 색상이 일반 (PHPExcel getFill 색상 호출에서 반환)입니다. 유일한 옵션은 통합 문서가 MS Excel 자체에서 실행되도록 COM을 사용하는 것입니다.

+0

아직 작동하지 않습니다. 이미 이미 일찍이를 잘못 설정하려고했습니다. getStartColor 및 getEndColor의 출력 만 반전합니다. 나는 그것을 곧 고칠 필요가있다. : –

+0

작동하지 않는다면 통합 문서의 소독 된 예제와 코드를 codeplex 발행 보드에 업로드 할 수 있습니까? 한 시간 정도 전에 성공적으로 테스트 했으므로 명확하게 상황을 발견했습니다 채우기 스타일을 읽을 수 없습니다. –

+0

여기 링크 http://ppexcel.codeplex.com/workitem/18540 –

1

두 번째 코드 :

$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getEndColor()->getARGB(); 

작품, 그냥 색상의 16 진수 코드 (FF0000)을 반환합니다.

RGB은 = 빨강 파랑 녹색 = XX XX XX

FF0000 실제로 RED입니다.

+0

그러나 getEndColor는 녹색 인 다른 셀에서도 항상 FF0000을 반환합니다. –