Foxtable(狐表)用户栏目专家坐堂 → [求助]打印列宽的设置


  共有2893人关注过本帖树形打印复制链接

主题:[求助]打印列宽的设置

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]打印列宽的设置  发帖心情 Post By:2018/3/8 22:38:00 [只看该作者]

交叉统计表导出到EXCEL后,有固定的标题列(比如为A1:A2),动态列为各月的数量、单价、金额。

我想在打印页面上设置横向打印
每月打印5个月的数量、单价、金额。
然后这15列的列宽=math.floor((页面的宽度-标题列的宽度)/15),这样,页面看起来美观一些

标题列的宽度容易获取=ws.range("A1:A2").width
问题:怎么样获取页面的打印宽度?我是说默认的打印宽度
[此贴子已经被作者于2018/3/8 22:39:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/8 22:58:00 [只看该作者]

页面的宽度,设置不同的打印纸张,不同的打印边距,都会导致宽度、高度发生变化的,不是固定的。

 

具体打印属性,参考这里 http://www.foxtable.com/webhelp/scr/2121.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/14 20:59:00 [只看该作者]

页面设置的单位问题:
Dim f As String = ProjectPath & "Reports\报表01.xls"
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(f)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.Range("A:G")   '可指定任意单元格或单元格区域
Rg.RowHeight = 40 '行高40磅
Rg.ColumnWidth = 20   '列宽20磅      
 '---这里说是磅是不是有问题呀。我设置了以后,列宽确实是20,但实际量了一下,列宽差不多是4.34cm。正常情况下,20磅的宽度应当是20*0.35mm=0.7cm,这也差得太多了点儿,到底rg.ColumnWidth = 20是什么单位?
app.visible = true


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/14 21:06:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/14 21:10:00 [只看该作者]

意思是列宽是指的一个单位,一个单位的宽度是2.2862毫米,那么设置Rg.ColumnWidth = 20,实际上设置的宽度就是20*2.2862=45.7mm?
那帮助里所说的设置20,是磅就错了哟。

不过我实际量了一下,设宽度20,实际宽度只有4.34cm左右,不是4.57cm

另外,所说的左右页边距 ,看了一下,好象设为60的话,确实就是指60磅,大约2.1cm,这个都要设晕了
[此贴子已经被作者于2018/3/14 21:35:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/14 22:01:00 [只看该作者]

测量的时候,你是打印出来测量的吗?如果在电脑上测量,你还要考虑像素、dpi的问题。

 

有可能有少量误差。excel的单位比较特殊。


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/14 22:17:00 [只看该作者]

1、我是在EXCEL中画了一个方框,然后在“格式”中查看它的尺寸,上面的数值应当是比较准确的。
2、上传的文件,ABC三列的宽度分别是20,30,10,但通过自定义函数得到的是23.75、33.75、10.75
很奇怪,这个3.75是从哪里来的?

比如我设的A4纸横打,那么宽的总宽度是29.7cm
然后左右边距分别设为60(单位应当是磅),约4.2cm,那么页面区域=29.7-4.2=25.5cm
现在ABC三列分别占用了20、30、10的宽度,合计60的宽度,实际测量的结果是每个单位的宽度=0.217厘米,占用宽度=13厘米
余下来的宽度=25.5-13=12.5厘米
它的单位数=12.5/0.217 =57.6个单位
如果余下来的9列平分这些列宽,每列占用宽度=6.4,那t以就应当设置Rg.ColumnWidth = 6.4

 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/14 22:18:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:列宽设置.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/14 22:37:00 [只看该作者]

具体的单位,你画一个框,然后除以行高或者列宽,不就得到具体的值了?

 

比如 4.34 / 20 得到一个单位是多少。

 

你可以先把页边距都设置成0,然后测试看效果咯。


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2191 积分:18001 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/3/14 23:22:00 [只看该作者]

试验结果:
Rg.ColumnWidth = math.Floor(( 25.5 - ws.range(标题列).Columns.width * 0.036 + ws.range(标题列).Columns.count * 3.75 * 0.036 ) / 0.217 / 平分余下列的列数 )
这样得到的结果才相对合理。
帮助里的Rg.ColumnWidth =20 ,说这个单位是磅,应当是有问题的。

如果设为20,那就表示一列都有20*0.217=4.34cm宽。
显然20磅不会有这么宽的
[此贴子已经被作者于2018/3/14 23:24:58编辑过]

 回到顶部
总数 17 1 2 下一页