【问题标题】:Coldfusion SpreadsheetAddImage function does not insert imageColdfusion SpreadsheetAddImage 函数不插入图像
【发布时间】:2013-07-18 21:24:15
【问题描述】:

我目前使用的是 CF 版本 9.0.1,我无法让 SpreadsheetAddImage 函数正确地将图像插入到我正在生成的电子表格中。我没有收到任何错误消息,只是图像没有显示在电子表格中。我还排除了查找图像或返回图像的任何问题(通过使用 cfimage writetobrowser 属性进行测试)。

我还从电子表格中删除了所有数据和格式,以排除覆盖该单元格内容的任何内容。只是想看看我能不能得到一张带图片的空白电子表格。

请参阅下面的示例代码。

<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)#">

感谢任何反馈。谢谢。

【问题讨论】:

    标签: excel coldfusion coldfusion-9 cfimage cfspreadsheet


    【解决方案1】:

    我运行了您的代码,发现当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)#">
    

    【讨论】:

    • 就是这样。谢谢!后续问题:我正在获取图像,但颜色呈现的方式与它们应该的不同。难道是因为尺寸还不够?
    • 似乎不是尺寸造成的。很奇怪。
    • 看起来与图像文件格式有关。我将同一图像的另一个副本保存为 jpg 文件而不是 png。正确渲染的 jpg 图像。不知道为什么会这样。再次感谢!
    • JPEG 和 PNG 以不同方式存储颜色,并且在解码时解释不同,尤其是考虑到 JPEG 有损压缩。要查看此示例,请将相同的基本文件保存为 PNG、JPEG 和 GIF,然后创建一个 HTML 页面,在 IE 中并排显示它们。所有的音调都会明显不同。
    猜你喜欢
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    相关资源
    最近更新 更多