Foxtable(狐表)用户栏目专家坐堂 → excel报表中如何获取字体的宽度和高度?


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

主题:excel报表中如何获取字体的宽度和高度?

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


加好友 发短信
等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
excel报表中如何获取字体的宽度和高度?  发帖心情 Post By:2017/9/22 11:39:00 [只看该作者]

如题,如何获取某个单元格里的字体的宽度和高度?

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


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

参考代码

 

Dim gc As Graphics = BaseMainform.CreateGraphics()
Dim size As SizeF = gc.MeasureString("abc", basemainform.Font)
msgbox(size.width)


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


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

请具体说你要做什么功能吧。

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


加好友 发短信
等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/22 17:28:00 [只看该作者]

我想实现自动调整行高 先判断数据字符宽度是否大于单元格 如果大于就将当前行的高度x2

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


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

以下是引用rjh4078在2017/9/22 17:28:00的发言:
我想实现自动调整行高 先判断数据字符宽度是否大于单元格 如果大于就将当前行的高度x2

 

这个问题你问过了啊

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=105340&skin=0

 

判断字符宽度参考2楼代码。


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


加好友 发短信
等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/22 19:34:00 [只看该作者]

之前那个解决方案不行 格式全部废掉

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


加好友 发短信
等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/22 20:00:00 [只看该作者]

二楼这个判断的是excel单元格字体宽度吗?BaseMainform 不是指窗体吗?


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


加好友 发短信
等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/22 20:15:00 [只看该作者]

 Dim Style As XLS.Style = Book.NewStyle() '定义新样式
        style.Font = New Font("楷体",10,FontStyle.Strikeout)
        Style.BorderTop = XLS.LineStyleEnum.Thin
        Style.BorderBottom = XLS.LineStyleEnum.Thin
        Style.BorderLeft = XLS.LineStyleEnum.Thin
        Style.BorderRight = XLS.LineStyleEnum.Thin
        Style.AlignHorz = XLS.AlignHorzEnum.Center
        Style.AlignVert = XLS.AlignVertEnum.Center        
        For i As Integer=0 To sheet.Rows.count-1
            If sheet(i,0).value="Y" Then
                For j As Integer=0 To 17
                    sheet(i,j+1).Style=Style 
                Next
            End If
for k as integer=0 to sheet.cols.count-1 then
如果单元格字符的宽度除以单元格宽度大于t
则将该行行高乘以t并将该单元格自动换行设为true
        Next


这个是写在报表的afterbuild事件中 红色部分如何实现?

[此贴子已经被作者于2017/9/22 20:16:01编辑过]

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


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/22 20:25:00 [只看该作者]

请上传具体实例测试

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


加好友 发短信
等级:狐精 帖子:3361 积分:24808 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2017/9/22 21:57:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:自动行高打印测试.rar

感谢了 需求写在里面了

 回到顶部
总数 21 1 2 3 下一页