image.png (3.5 KB)
另外,关于上述图片这个样例,数据源有没有使用Map的例子提供?,现在提供的是JavaBean的.
代码和模板已经提供
@xiaoman
通过使用样例文件和代码进行测试,我们可以复现问题。发现当使用smart marker进行数据替换时,结果文件数据错误。
我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。
问题单号:CELLSJAVA-46002
@xiaoman ,
您的源文件是用WPS生成的,但是我本地下载并安装了WPS,似乎WPS并不支持直接插入webp图片,请问您是如何插入webp图片到源文件中的?
另外,源文件在Office Excel中打开,会提示修复文件,确认修复后并另存文件,发现Excel将文件中的图片转换成了png图片。
基于以上情况,建议您将webp图片转换成png图片,再重新插入到源文件中。
图片插入是用的apache.poi框架实现的
这个问题是要在新的版本中解决吗 还是说你们还要经过讨论排期? 我们现在非常希望你们能实现这个功能,以便于适配我们公司业务场景 ,谢谢
@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, 所以请把他们单独放在一个单元格中, 见模板文件。
因为Pdf不支持webp格式,所以需要在生成pdf 前把webp转换成其他格式的图片,但是JDK 不支持webp,因此我们需要时间来寻找解决方案。
我们在Excel中打开模板文件的时候,Excel会弹出告警。目前而言最好在插入webp图片前,先用第三方库转换成其他格式。
好的,那我先自己转一下格式.谢谢你们的解答.
谢谢你的解答:
1.如果不支持单元格值的一部分作为smartmarker,那我们估计就用不了这个smartmarker功能了,因为对于我们的用户来说,这样就做了限制,客户体检会比较差.
2.另外我在想另外一个方案,就是如果smartmarker无法填充这样的场景,我是否可以先试用smartmarker智能填充一遍,再自己手动遍历判断是否有占位符,自己手动替换,但是发现smartmarker填充完后,找不到的占位符会被去除掉,这个有参数设置不去除吗?这样我就可以在smartmarker标记完了,手动找到没有填充的cell进行填充参数
好的 我试试看.
另外我给的样例中还有个 使用嵌套对象的数据填充模板和代码,官方样例给的是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。