| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1666 人关注过本帖, 3 人收藏
标题:excel单元中,VFP如何将照片居中,以便得到满意的打印效果
只看楼主 加入收藏
不黑的乌鸦
Rank: 1
来 自:南宁市
等 级:新手上路
帖 子:10
专家分:3
注 册:2008-2-7
结帖率:0
收藏(3)
 问题点数:0 回复次数:6 
excel单元中,VFP如何将照片居中,以便得到满意的打印效果
因照片的长宽不相同,在excel的单元中放入照片时,默认是靠上并且居左。
我在excel2003的宏取得键盘移动图片指令和鼠标拖动指令,但在vfp中不认该指令

下面的键盘移动指令vfp不能执行
oleApp.Selection.ShapeRange.IncrementTop = 0.75
oleApp.Selection.ShapeRange.IncrementLeft = 3#


下面的边界剪裁指令可以执行:
oleApp.Selection.ShapeRange.PictureFormat.CropTop=1   && 顶部剪掉1磅
oleApp.Selection.ShapeRange.PictureFormat.CropLeft=1  && 左边剪掉1磅

剪裁指令不能使照片居中,打印效果不好。如何居中,请大家赐教
搜索更多相关主题的帖子: 照片 excel2003 如何 
2012-07-22 04:42
不黑的乌鸦
Rank: 1
来 自:南宁市
等 级:新手上路
帖 子:10
专家分:3
注 册:2008-2-7
收藏
得分:0 

哈哈,睡了一觉,忽然开窍,问题解决了。光标移动不能用赋值指令的格式,用下面的格式
=oleApp.Selection.ShapeRange.IncrementLeft(1.5)  && 图片左边界增加1.5磅
=oleApp.Selection.ShapeRange.Incrementtop(2.5)  && 图片上边界增加1.5磅

2012-07-22 11:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你这种方法要知道图片和单元格的精确尺寸才成啊,图片统一才好办,不统一的时候,定位就比较繁琐了。Excel的图形定位是有点特殊,好像有一个布局指令的,要研究一下帮助信息才成。

授人以渔,不授人以鱼。
2012-07-22 13:34
不黑的乌鸦
Rank: 1
来 自:南宁市
等 级:新手上路
帖 子:10
专家分:3
注 册:2008-2-7
收藏
得分:0 
1.求单元的高度、宽度
C_坐标区间=列字母1+行号1+":"+列字母2+行号2
oleApp.Range(y__坐标区间).Select  && 定义块
n_单元高=oleApp.Selection.height
n_单元宽=oleApp.Selection.width

2.求照片的原始尺寸
oleApp.ActiveSheet.Pictures.Insert(y__照片文件).Select
n_照片原始宽度=oleApp.Selection.ShapeRange.Width  && 取照片的原始宽度和高度
n_照片原始高度=oleApp.Selection.ShapeRange.Height

3.  在单元中等比例缩放图片
oleApp.Selection.ShapeRange.LockAspectRatio = .t.  && msoTrue
...
...


4.单元中照片宽度<单元宽度时,求左界
n_单元中照片高度=oleApp.Selection.ShapeRange.Height
n_单元中照片宽度=oleApp.Selection.ShapeRange.Width
if n_单元宽>n_单元中照片宽度
 x_水平偏移量=(n_单元宽-n_单元中照片宽度)*0.5
 =oleApp.Selection.ShapeRange.IncrementLeft(x_水平偏移量)
endi

在一个较大的人事应用系统中,照片的规格有偏差是很正常的。你要能规定唯一标准,编程就简单了。
2012-07-22 14:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
其实如果统一照片格尺寸的话,把照片等比例缩放到格子中就行了,不用刻意调整边界,充满也不会很变形——因为你说照片只是稍微偏差,不是差异很大那种。

授人以渔,不授人以鱼。
2012-07-22 15:02
小主板
Rank: 2
等 级:论坛游民
帖 子:187
专家分:21
注 册:2009-6-28
收藏
得分:0 
我也遇到同样问题,想知道!
2012-07-23 15:40
不黑的乌鸦
Rank: 1
来 自:南宁市
等 级:新手上路
帖 子:10
专家分:3
注 册:2008-2-7
收藏
得分:0 
楼上,我把第三点详细描述

3.  在单元中等比例缩放图片
oleApp.Selection.ShapeRange.LockAspectRatio = .t.  && 设为等比例缩放
(1)求单元的高宽比例
  n_单元_高宽_比例=n_单元高/n_单元宽
  n_照片的原始_高宽_比例=n_照片原始高度/n_照片原始宽度
(2)若 照片的原始_高宽_比例>n_单元_高宽_比例
  这是一张窄照片,令其高度满单元格,系统根据等比例缩放给出宽度
   oleApp.Selection.ShapeRange.Height=n_单元高
  否则是一张宽照片,令其宽度满单元格,系统根据等比例缩放给出高度
   oleApp.Selection.ShapeRange.Width=n_单元宽

实际尺寸并不一定=单元的尺寸,因此你要再读出单元中的照片的实际尺寸,小于单元尺寸时,你就移动照片居中
n_单元中照片高度=oleApp.Selection.ShapeRange.Height
n_单元中照片宽度=oleApp.Selection.ShapeRange.Width
2012-07-24 18:04
快速回复:excel单元中,VFP如何将照片居中,以便得到满意的打印效果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038045 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved