TC官方合作论坛

 找回密码
 立即注册
查看: 409|回复: 3
打印 上一主题 下一主题

[已解决] 谁能提供个思路,来设置表格的最佳列宽?

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-4 16:00:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
有时候表格列宽不够长,输入了很长的内容后不能完全显示,就想着做个调整列宽的功能.就像excel那样.于是花了好长时间做出来,发现效果差强人意. 现在我的思路是,先把表格所有行的内容算出字符数来(字符长度),然后比较长短,得出最长一行的字符数来,然后把最长的字符数乘以一个字符的宽度,得出大概需要的列宽.可是每个字符的列宽这个不知道怎么算,暂时只能目测,所以出来的也特别不准.下面是我写的代码:
  1. 功能 最合适列宽_点击()
  2.     变量 行,列
  3.     表格.大小("表格0",行,列)
  4.     //检测是否有行
  5.     如果(行<2)
  6.         辅助.消息框("配置表格里有数据才能使用本功能","提示")
  7.         返回 假
  8.     如果结束
  9.    
  10.     //获取表格内容的字符数,填入数组
  11.     表格=数组[行][列]
  12.     遍历(i=1;i<行;i++)
  13.         遍历(j=1;j<列;j++)
  14.             表格[i][j]=字符串.长度(表格.获得内容("表格0",i,j))
  15.         遍历结束
  16.     遍历结束

  17.     //找出每一列每一行的最大字符数,我这里一共有6列
  18.     遍历(x=2;x<7;x++)
  19.         max=表格[1][x]
  20.         j=2
  21.         循环(j<行)
  22.             如果(max<表格[j][x])// 里面的4行语句很重要
  23.                 max=表格[j][x]
  24.                 stmp=表格[j][x]
  25.                 表格[1][x]=表格[j][x]
  26.                 表格[j][x]=stmp
  27.             如果结束
  28.             j = j + 1
  29.         循环结束
  30.         //这里设置一个最小列宽.
  31.         如果(max*9<40)
  32.             表格.设置列宽("表格0",x,50)
  33.         否则
  34.             表格.设置列宽("表格0",x,max*9) //"9"是大概算出的一个字符的宽度,这个不准.
  35.         如果结束
  36.     遍历结束
  37.     功能结束
复制代码

这个效果也不好.有没有别的什么思路来设置一下表格的最合适列宽呢?

回复

使用道具 举报

沙发
发表于 2014-10-4 18:05:40 | 只看该作者
http://zhidao.baidu.com/link?url ... HOvX-EYNUAzSuYbe0Ua

百度查看下你表格属性里所选字体相当于多少像素就可以了
回复 支持 反对

使用道具 举报

板凳
发表于 2014-10-5 00:13:29 | 只看该作者
判断字符数量和字体大小
回复 支持 反对

使用道具 举报

地板
发表于 2015-4-29 13:41:02 | 只看该作者
这个肯定要用win32api了,并且汉字和英文数字的长度是不一样的
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-23 02:53 , Processed in 0.133695 second(s), 23 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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