2013-07-18 6 views
1

현재 CF 버전 9.0.1을 사용 중이며 SpreadsheetAddImage 함수를 생성하여 생성중인 스프레드 시트에 이미지를 올바르게 삽입하는 데 문제가 있습니다. 오류 메시지가 나타나지 않고 이미지가 스프레드 시트에 표시되지 않습니다. 또한 이미지를 찾거나 반환하는 것과 관련된 모든 문제를 배제했습니다 (cfimage writetobrowser 속성을 사용하여 테스트 됨).Coldfusion SpreadsheetAddImage 함수가 이미지를 삽입하지 않습니다.

스프레드 시트에서 모든 데이터와 서식을 제거하여 해당 셀의 내용을 덮어 쓰는 것을 배제했습니다. 이미지가있는 빈 스프레드 시트를 얻을 수 있는지 확인하기 만하면됩니다.

아래의 샘플 코드를 참조하십시오.

<cfset sObj = SpreadsheetNew()> 
<!--- <cfimage source="pathtomyimage.jpg" name="image"> ---> 
<cfset image_var = ImageRead("pathtomyimage.png")> 

<cfset SpreadsheetAddRow(sObj, "")> 
<cfset SpreadsheetAddImage(sObj,image_var,"png","1,1,1,1")> 

...

<cffile action="readbinary" file="#dest_loc#" variable="export_file"> 
<cffile action="delete" file="#dest_loc#"> 

<cfheader name="Content-Disposition" value="inline; filename=#file_name#.xls"> 
<cfcontent type="application/vnd.msexcel" variable="#toBinary(export_file)#"> 

나는 어떤 의견을 보내 주셔서 감사합니다. 감사.

답변

4

코드를 실행 한 결과 anchor 크기가 너무 작 으면 이미지가 나타나지 않는 것으로 나타났습니다. (또한 디스크에 스프레드 시트를 쓰는 대신 SpreadSheetReadBinary을 사용했으나 차이가 없어야합니다.) documentation에서이 예를 시도해보십시오. 이미지가 표시되면 크기에 문제가 있음을 나타냅니다. 이 문제를 해결하려면 앵커 크기를 늘리거나 이미지 기능을 사용하여 이미지 크기를 줄이십시오.

<cfchart format="png" name="image_var"> 
    <cfchartseries type="line"> 
     <cfchartdata item="Point1" value="-50"> 
     <cfchartdata item="Point2" value="-25"> 
     <cfchartdata item="Point3" value="1"> 
    </cfchartseries> 
</cfchart> 

<cfset sObj = SpreadsheetNew()> 
<cfset SpreadsheetAddRow(sObj, "")> 
<cfset SpreadsheetAddImage(sObj,image_var,"png","1,1,7,6")> 
<cfheader name="Content-Disposition" value="inline; filename=testFile.xls"> 
<cfcontent type="application/vnd.msexcel" variable="#SpreadSheetReadBinary(sObj)#"> 
+0

그게 전부입니다. 고맙습니다! 그래도 질문을 따르십시오 : 이미지가 표시되지만 색상이 다르게 렌더링됩니다. 치수가 충분하지 않아서 이것이 가능할 수 있습니까? – user1489298

+0

크기로 인해 발생하지 않는 것 같습니다. 아주 이상한. – user1489298

+0

이미지 파일 형식과 관련이있는 것처럼 보입니다. 동일한 이미지의 다른 복사본을 png 대신 jpg 파일로 저장했습니다. jpg 이미지가 올바르게 렌더링되었습니다. 왜 그런지 모르겠습니다. 다시 한번 감사드립니다! – user1489298