ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8280|回复: 6

[求助] 点与像素的转换

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-21 12:28 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:图像处理和GDI
详细看附件,谢谢!

Book1.rar

10.23 KB, 下载次数: 119

点评

知识树索引:3楼  发表于 2013-12-29 10:20

TA的精华主题

TA的得分主题

发表于 2009-8-21 13:08 | 显示全部楼层
行高与列宽的单位看来是不同的,你看列宽21对应173像素,行高21对应28像素,则1列宽=6.17行高

TA的精华主题

TA的得分主题

发表于 2009-8-21 13:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

希望以下资料对你有用.

像素与毫米的转换
转换还需要知道另一个参数:DPI(每英寸多少点)
象素数 / DPI = 英寸数
英寸数 * 25.4 = 毫米数
对于显示设备,不管是打印机还是屏幕,都有一种通用的方法
先用GetDeviceCaps(设备句柄,LOGPIXELSX)
或者
GetDeviceCaps(设备句柄,LOGPIXELSY)获得设备每英寸的像素数
分别记为:px 和 py
一英寸等于25.4mm
那么毫米换算成像素的公式为 
水平方向的换算: x * px /25.4
垂直方向的换算: y * py /25.4
像素换算为毫米 x * 25.4 / px
在程序中这么写
MyControl.Height := 10{mm} * PixelsPerInch * 10 div 254;
分子和分母同乘以10,将浮点数运算转化为整数运算,效率更高

常用的1024x768或800x600等标准的分辨率计算出来的dpi是一个常数:96,因此计算出来的毫米与像素的关系也约等于一个常数:
基本上 1毫米 约等于 3.78像素

TA的精华主题

TA的得分主题

发表于 2009-8-21 13:15 | 显示全部楼层
原帖由 fenghcl 于 2009-8-21 13:13 发表
像素与毫米的转换
转换还需要知道另一个参数:DPI(每英寸多少点)
象素数 / DPI = 英寸数
英寸数 * 25.4 = 毫米数
对于显示设备,不管是打印机还是屏幕,都有一种通用的方法
先用GetDeviceCaps(设备句柄, ...

好详细!学习了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-21 15:28 | 显示全部楼层
再贴~其实我早百度了N遍了,没找到满意的



行高是以磅为单位
1mm=2.835磅
列宽与EXCEL的标准字体有关
=====================
"帮助"中说-------
出现在“标准列宽”框中的数字为适合于单元格的标准字体的数字 0-9 的平均值。
=====================
注解:
标准字体------是指EXCEL---工具---选项---常规中的标准字体(当然与字大小也有关)
因为字体中,如,0与1其宽度有可能不一样,EXCEL是以"标准字体"的0123456789这10个字符的平均值为计量单位.
1 个单位列宽为多少磅可用VBA得到。
=Range("A1").Width/Columns(1).ColumnWidth
(当然A1不能是合并了的单元格)
如:
简体OFFICE,默认标准字体(宋体12号)情况下
Range("A1").Width/Columns(1).ColumnWidth=6.444
这样行高为56.7,列宽为8.799时,为2*2CM

另一个帖子:




五、Excel中度量单位的设置

1.字号输入栏

  Excel的字号没有Word中类似初号等名称的设定,要想统一Excel和Word中字体的大小可以参照表2来设置字号的磅值。字号的调节范围是1磅~409磅,字号的最小调节精度同样为0.5磅。
2.行高

  行高设置分输入栏设置、拖动设置、双击自动适应三种。输入栏设置(如图6)的默认度量单位是磅,无法进行特指方式设置。拖动更改行高时,系统会提示行高的磅值和像素值,拖动的调整精度由Excel的显示比例决定。无论何种方法设置行高,行高的最小调整精度是1像素。如要制作尺寸要求较高的图表,可以参照度量单位换算表来精确设置行高。



3.列宽

  列宽设置也分输入栏设置、拖动设置、双击自动适应三种。列宽输入栏设置(如图7)的默认度量单位和行高不同,不是以上所介绍的任何一个度量单位。如果将行高和列宽设置为同一数值得到的却不是正方形的单元格,还好列宽的默认度量单位和像素有对应换算关系,可以将列宽换算成像素或直接拖动列宽为合适的像素值来确定行高列宽的比例。列宽的最小调整精度也是1像素,由于1像素=0.26毫米,所以只要仔细进行换算,认真设置行高列宽,完全可以进行精确制表。



小提示

  在Excel中还有一个快速获得单元格行高列宽的方法:

  第一步:点击“图片”工具栏中的“直线”按钮;

  第二步:按住Alt键不放,用鼠标沿着单元格画直线,此时直线是沿着单元格的边框延伸,完成后松开鼠标和Alt即可,此时得到的直线默认属性是“大小、位置均随单元格而变”。

  第三步:右击直线选择“设置自选图形格式”,在“大小”选项卡中的“大小和转角”区域中可以查看直线的长或宽,这也就是单元格的列宽或行高。
4.页面设置

  在“文件”菜单中单击“页面设置”命令,然后选择“页面设置”对话框中的“页边距”选项卡(如图8),在此对话框中即可进行页边距的设置。此对话框的默认度量单位是厘米。Excel中的页面大小只受打印驱动程序的限制,打印机可以打多大,页面就可以设置多大。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-21 15:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
答案就要一个,那就是:怎么得到列宽的像素?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-22 10:11 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 04:29 , Processed in 0.041790 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表