使用apose.cell的SDK,excel转pdf,图片丢失

@xiaoman
code.zip (18.1 KB)
附件中包含了修改的模板文件, 代码以及生成的文件。
1,最好你能在Excel中定义named range _CellsSmartMarkers,这样我们就不需要在代码中用wb.getWorksheets().get(0).getCells().createRange(“A6:F8”).setName(“_CellsSmartMarkers”); 来生成区域。
我们依赖named range “_CellsSmartMarkers” 来寻找所有需要一起处理的 smart marker。

2,我们目前不支持单元格值的一部分作为smartmarker, 所以请把他们单独放在一个单元格中, 见模板文件。

@xiaoman

因为Pdf不支持webp格式,所以需要在生成pdf 前把webp转换成其他格式的图片,但是JDK 不支持webp,因此我们需要时间来寻找解决方案。

我们在Excel中打开模板文件的时候,Excel会弹出告警。目前而言最好在插入webp图片前,先用第三方库转换成其他格式。

好的,那我先自己转一下格式.谢谢你们的解答.

@xiaoman
不客气。感谢你的反馈。如果你有任何疑问,请随时联系我们。

谢谢你的解答:
1.如果不支持单元格值的一部分作为smartmarker,那我们估计就用不了这个smartmarker功能了,因为对于我们的用户来说,这样就做了限制,客户体检会比较差.
2.另外我在想另外一个方案,就是如果smartmarker无法填充这样的场景,我是否可以先试用smartmarker智能填充一遍,再自己手动遍历判断是否有占位符,自己手动替换,但是发现smartmarker填充完后,找不到的占位符会被去除掉,这个有参数设置不去除吗?这样我就可以在smartmarker标记完了,手动找到没有填充的cell进行填充参数

@xiaoman
作为替代方案,你可以先手动替换掉常量值和smartmarker标记混合的单元格,然后再使用aspose.cells处理smartmarker。

好的 我试试看.
另外我给的样例中还有个 使用嵌套对象的数据填充模板和代码,官方样例给的是javabean的方式,我现在的需求是想改成Map作为数据源.

@xiaoman
通过使用样例文件和代码在最新版本v24.5进行测试,我们可以复现问题。发现使用HashMap作为smartmarker的数据源时,智能标记的数据替换错误。

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号: CELLSJAVA-46004

@xiaoman
template2.zip (18.7 KB)

1,
我们不能支持单元格的值的一部分作为smartmarker,smartmarker作为单元格值的结尾还好说, 如果在单元格得前半部,我们就无法区分哪些是smartmarker。

你可以用CONCAT公式来实现, 把smartmarker 放在隐藏的行列中,见template2.xlsx

2,我们将在下一个版本支持Map作为Java Bean。我们下周会发布24.6.
附件中的24.6就是最新的生成文件

The issues you have found earlier (filed as CELLSJAVA-46004) have been fixed in Aspose.Cells for Java 24.6.

@xiaoman ,

对于WebP图片的加载问题, 在Aspose.Cells for Java 24.6版本,你可以通过添加第三方扩展(例如: imageio-webp Plugin)来加载WebP图片,并成功转换到pdf。