找回密码
 立即注册

QQ登录

只需一步,快速开始

nbygu

初级会员

28

主题

105

帖子

263

积分

初级会员

积分
263
nbygu
初级会员   /  发表于:2024-7-10 10:47  /   查看:971  /  回复:5
变更HyperLink的text的时候,autoFitColumn方法不会自动调整列宽,有啥办法可以解决吗?

5 个回复

倒序浏览
eat_grape_5
高级会员   /  发表于:2024-7-10 11:44:03
沙发
本帖最后由 eat_grape_5 于 2024-7-10 11:47 编辑

自动调整列宽的“自动”二字体现在表格控件能够根据单元格内容调整列宽,不需要人为设置列宽值,而非当单元格个内容变化后实时调整列宽。
在楼主的使用场景里,修改超链接文本后,再调用一次autoFitColumn方法即可自适应列宽。这个使用方式其实跟在Excel软件中每次手动触发“自动调整列宽”菜单才能生效是一致的。
如果要在单元格内容变化后即自动调整单元格,可以注册ValueChanged事件监听单元格内值的变化,在处理事件的函数中调用autoFitColumn方法。关于其他相关的业务逻辑,一并定义在事件处理函数中即可。
回复 使用道具 举报
nbygu
初级会员   /  发表于:2024-7-10 13:34:14
板凳
我知道什么原因了,是因为我合并单元格了,所以导致不能自适应列,可以解帖了
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-10 17:33:52
地板
回复 使用道具 举报
橘子1
注册会员   /  发表于:2024-7-12 17:16:24
5#
nbygu 发表于 2024-7-10 13:34
我知道什么原因了,是因为我合并单元格了,所以导致不能自适应列,可以解帖了

我也出现了合并单元格的不能自适应列,请问你是怎么解决的?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-7-15 13:43:28
6#
您好,可以获取当前当前单元格实际宽度,如下图所示
image.png471282958.png
A1单元格是合并单元格,且内容并未完全展示。
您可以通过下面的代码获取实际宽度
  1. var instance = new GC.Spread.Sheets.CellTypes.Text();
  2.             var returnValue = instance.getAutoFitWidth(
  3.                 sheet.getValue(0, 0),
  4.                 sheet.getText(0, 0),
  5.                 sheet.getActualStyle(0, 0),
  6.                 sheet.zoom(),
  7.                 {"sheet": sheet, "row": 0, "col": 0, "sheetArea": GC.Spread.Sheets.SheetArea.viewport});
复制代码
结果如下:


image.png180005187.png



同理,可以根据根据类似的方法获取单元格实际高度,如下代码:

  1. <div> var instance = new GC.Spread.Sheets.CellTypes.Text();
  2.             var returnValue = instance.getAutoFitHeight(
  3.                 sheet.getValue(0,0),
  4.                 sheet.getText(0,0),
  5.                 sheet.getActualStyle(0,0),
  6.                 sheet.zoom(),
  7.                 {"sheet": sheet, "row": 0, "col": 0, "sheetArea": GC.Spread.Sheets.SheetArea.viewport});</div>
复制代码

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部