问题描述
如下图所示,左上角插入图片后,应该与单元格绿色完全重合。而现在情况如左下角图片所示,通过代码实现图片插入后,图片超出了绿色区域。
代码实现如下,三个情况都试了,不关position的设置问题。
sheet->setPicture2(0, 0, id, -1, -1, 0, 0, libxl::POSITION_MOVE_AND_SIZE);//大小和位置随单元格而变
sheet->setPicture2(0, 0, id, -1, -1, 0, 0, libxl::POSITION_ONLY_MOVE);//大小固定,位置随单元格而变
sheet->setPicture2(0, 0, id, -1, -1, 0, 0, libxl::POSITION_ABSOLUTE);//大小和位置均固定
问题原因
Excel会根据当前系统显示设置,自动调整单元格的初始列宽。造成插入图片后,列宽与图片宽度值不一致。
解决办法
通过手工设置,将显示更改为100%,然后再运行,看看插入的图片是否正常
注意:更改显示设置后,一定要重启计算机!!!
当然,肯定还有别的办法,例如:可以通过代码实现。这里我就不深入研究了,以后有时间再回来填坑吧。