通过ole往excel中插入图片与人工插入图片的差异

coldsea_2017 2017-11-16 12:10:46
各位大神,最近在做一个小程序,delphi通过ole往excel指定的位置插入图片,并缩小图片尺寸;
目前插入图片和缩小图片的操作都正常,但是操作后我发现了一个问题:
通过delphi插入的图片,通过拖拽放大到原始尺寸时,显示质量急剧下降,图片很模糊;
而通过人工在excel插入的图片,通过拖拽缩小后再放大到原来尺寸,图片是基本没有变化的;

请教各位大神,delphi该怎样操作,才能不改变原图像的质量?

注:
1,现场录制宏,并不能录下插入图片和放大缩小图片的操作,是在网上查的操作资料;
2,试验了两种改变图片大小的方式,一个是通过picture.width和height的方法改变大小,
另外一个是通过selection.ShapeRange.scalewidth和scaleheight的方法改变大小,两者效果差不多都会损失图片质量;
3,我以为是矢量图的原因,但是试验了一下ps软件生成的eps格式图像,发现不能执行插入操作;
因为不能录制宏,不能知道是否有另外的.插入图片方法
...全文
539 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coldsea_2017 2017-11-18
  • 打赏
  • 举报
回复
引用 4 楼 lyhoo163 的回复:
通过ole对Woed或excel的操作,速度慢,而且很不畅。不如歈和第三方控件。
有成熟的控件吗?delphi自带的不好用,所以我一直没有考虑,谢谢指点 目前我的方法是先采用GDI+算法,将图片缩小成需要的大小,然后再原图插入进去,效果有所好转,但是达不到理想状态
coldsea_2017 2017-11-18
  • 打赏
  • 举报
回复
引用 3 楼 harvardfeng 的回复:

workRange := XLApp.ActiveSheet.Range[XLApp.ActiveSheet.Cells.Item[1, 1],XLApp.ActiveSheet.Cells.item[1, 1]];
XLApp.ActiveSheet.Rows[1].RowHeight := 50;
workRange.ColumnWidth := 50;
picture := XLApp.ActiveSheet.Pictures.Insert(PicPath);
picture.left := workRange.left + 1; //左
picture.top := workRange.top + 1; //高
picture.width := workRange.width - 2; //宽度
picture.height := workRange.height - 2; //高度
没有旧版本Office测试,这种不行?
这种不行,我就是这种方法插入的
lyhoo163 2017-11-17
  • 打赏
  • 举报
回复
通过ole对Woed或excel的操作,速度慢,而且很不畅。不如歈和第三方控件。
蓝色的天堂 2017-11-17
  • 打赏
  • 举报
回复

workRange := XLApp.ActiveSheet.Range[XLApp.ActiveSheet.Cells.Item[1, 1],XLApp.ActiveSheet.Cells.item[1, 1]];
XLApp.ActiveSheet.Rows[1].RowHeight := 50;
workRange.ColumnWidth := 50;
picture := XLApp.ActiveSheet.Pictures.Insert(PicPath);
picture.left := workRange.left + 1; //左
picture.top := workRange.top + 1; //高
picture.width := workRange.width - 2; //宽度
picture.height := workRange.height - 2; //高度
没有旧版本Office测试,这种不行?
coldsea_2017 2017-11-16
  • 打赏
  • 举报
回复
回复 日月路明: 我网上找了一下,没有发现有用的office二次开发的文档,大部分都是通过录制宏的方法。因为我不太会从网上找这类资料,不知大神有没有相关的资料?谢谢
日月路明 2017-11-16
  • 打赏
  • 举报
回复
,delphi通过ole往excel指定的位置插入图片,并缩小图片尺寸 ----------------------------------------------------------------------------------- 我印象里,添加图片有附加属性,决定图片是按照原始照片添加,还是按照指定的尺寸缩放添加,i最好看一下office二次开发文档

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧