通过libxl插入图片时,图片大小与代码设置值不一致

文章讨论了在Excel中插入图片时,图片超出绿色区域的问题,原因在于Excel根据系统显示设置自动调整列宽。解决方法包括手动设置显示为100%并重启电脑,或考虑通过代码控制图片位置和大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

如下图所示,左上角插入图片后,应该与单元格绿色完全重合。而现在情况如左下角图片所示,通过代码实现图片插入后,图片超出了绿色区域。

代码实现如下,三个情况都试了,不关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%,然后再运行,看看插入的图片是否正常

注意:更改显示设置后,一定要重启计算机!!!

当然,肯定还有别的办法,例如:可以通过代码实现。这里我就不深入研究了,以后有时间再回来填坑吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值