gpt4 book ai didi

image - 使用 Coldfusion 8 将图像添加到 Excel 文档中的行

转载 作者:行者123 更新时间:2023-12-02 22:14:07 25 4
gpt4 key购买 nike

是否有人能够使用 Coldfusion 8 将图像嵌入到 Excel 电子表格 (xlsx) 中或通过 img src 链接它们?

一些背景信息:cf 服务器将拾取包含产品行的 Excel 文档。根据产品 ID 和样式等,我能够找到或创建一个图像,该图像作为第一列添加到现有的 Excel 文档中。

我知道coldfusion 9有一个名为SpreadsheetAddImage的功能,不幸的是我在cf 8上没有机会升级。

最佳答案

我不确定您当前使用什么来操作 xlsx 文件。然而,CF9 中的电子表格功能利用 POI ,显然也可以在 CF8 中使用。它只需要更多的低级代码。

先决条件:

虽然 POI 与 CF8 捆绑在一起,但它是旧版本。您需要更新的版本来操作 .xlsx 文件。您可以使用 javaLoader -或者- 替换 {cf_root}\lib 中现有的 jars文件夹。 注意,我不知道更换 jar 是否有任何负面影响。

添加图像:

Excel 并不真正支持 <img>标签,仅超链接。但是,您可以像 SpreadsheetAddImage 一样在工作簿中嵌入图像。如 POI Busy Developers Guide 中所述,基本流程为:

  1. 使用 WorkBookFactory 加载 xlsx 文件
  2. 获取每个图像的二进制文件并将其添加到工作簿
  3. 将每个图像锚定到所需的单元格
  4. 将修改后的工作簿保存回磁盘

示例:

<小时/>
<cfscript>
// ..

// load the xlsx file with the javaLoader
factory = loader.create("org.apache.poi.ss.usermodel.WorkbookFactory");
input = loader.create("java.io.FileInputStream").init( "c:/path/to/someFile.xlsx" );
workbook = factory.create( input );
input.close();

// get the desired sheet and load helper objects (once)
sheet = workbook.getSheet("Your Sheet Name");
patriarch = sheet.createDrawingPatriarch();
helper = workbook.getCreationHelper();

// add the image to the workbook
imageBytes = fileReadBinary( "c:/path/to/someImage.jpg" );
imageIndex = workbook.addPicture( imageBytes, workbook.PICTURE_TYPE_JPEG );

// anchor the picture to the first cell ie A1
anchor = helper.createClientAnchor();
anchor.setRow1( javacast("int", 0) ); // row of first cell (zero based)
anchor.setCol1( javacast("int", 0) ); // column of first cell (zero based)
picture = patriarch.createPicture( anchor, imageIndex );
picture.resize(); // only supported for jpg and png

// save it back to disk
outstream = loader.create("java.io.FileOutputStream").init( "c:/path/to/outFile.xlsx"" );
workbook.write( outstream );
outstream.flush();
outstream.close();
</cfscript>
<小时/>

新列讽刺的是,插入新列比添加图像更棘手。最后我检查了一下,POI 仍然缺少插入新列的内置功能。因此,在将图像插入第一列之前,您需要将所有现有单元格向右移动。棘手的部分是维护单元格格式、合并单元格等。

关于image - 使用 Coldfusion 8 将图像添加到 Excel 文档中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10222486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com