找回密码
 立即注册

QQ登录

只需一步,快速开始

婧1022
金牌服务用户   /  发表于:2024-9-29 17:43  /   查看:473  /  回复:8
1金币
页面怎样实现列自适应行高 image.png740324401.png
image.png457324828.png
image.png915798034.png

最佳答案

查看完整内容

您好!可以通过Worksheet:autoFitRow()对指定行设置自适应行高,也可以通过UI设置,如下图所示。 可以参考官网API文档了解详情: Worksheet:autoFitRow()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#autofitrow

8 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-9-29 17:43:32
来自 2#
本帖最后由 Wilson.Zhang 于 2024-9-29 17:56 编辑

您好!可以通过Worksheet:autoFitRow()对指定行设置自适应行高,也可以通过UI设置,如下图所示。
1727603652679.png209190367.png

可以参考官网API文档了解详情:
Worksheet:autoFitRow()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#autofitrow
回复 使用道具 举报
婧1022
金牌服务用户   /  发表于:2024-9-29 18:33:09
3#
本帖最后由 婧1022 于 2024-9-29 18:35 编辑
Wilson.Zhang 发表于 2024-9-29 17:54
您好!可以通过Worksheet:autoFitRow()对指定行设置自适应行高,也可以通过UI设置,如下图所示。

用了可以自动换行,不可以自适应行高
58ec54fee94e1e601f133568eb03a43.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-30 08:45:01
4#
婧1022 发表于 2024-9-29 18:33
用了可以自动换行,不可以自适应行高

自适应行高的执行目标是行,因此,在Worksheet:autoFitRow()传参应该为行索引。从您提供图示中的代码片段,了解到自适应行高的目标对象应该是行54,而非1。您可以将Worksheet:autoFitRow()传参修改为54试看看。

关于Worksheet:autoFitRow()和Worksheet:autoFitColumn(),autoFitRow自适应行高,那么,操作对象应该就某行,传参即行索引;同理,autoFitColumn自适应列宽,操作对象是某列,传参即列索引。您可以参考官网API文档了解更多详情:
Worksheet:autoFitRow()--https://demo.grapecity.com.cn/sp ... orksheet#autofitrow
Worksheet:autoFitColumn()--https://demo.grapecity.com.cn/sp ... sheet#autofitcolumn
回复 使用道具 举报
婧1022
金牌服务用户   /  发表于:2024-9-30 10:13:22
5#
本帖最后由 婧1022 于 2024-9-30 10:15 编辑
Wilson.Zhang 发表于 2024-9-30 08:45
自适应行高的执行目标是行,因此,在Worksheet:autoFitRow()传参应该为行索引。从您提供图示中的代码片段 ...

刚进页面加载JSON数据,JSON数据中使用了自动换行功能,但是不适应行高,加载出来的所有行都需要自适应行高这种的改怎么解决呢?图片中是加载出来的数据
cb04910756a42458d07e08ebb0f45c9.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-30 11:37:01
6#
婧1022 发表于 2024-9-30 10:13
刚进页面加载JSON数据,JSON数据中使用了自动换行功能,但是不适应行高,加载出来的所有行都需要自适应行 ...

通过Worksheet:getUsedRange()可知被使用填充了数据的单元格区域范围,对范围中的数据行逐一自适应行高即可。

可以参考官网API文档了解详情:
Worksheet:getUsedRange()--https://demo.grapecity.com.cn/sp ... ksheet#getusedrange
回复 使用道具 举报
婧1022
金牌服务用户   /  发表于:2024-9-30 14:38:05
7#
本帖最后由 婧1022 于 2024-9-30 15:07 编辑
Wilson.Zhang 发表于 2024-9-30 11:37
通过Worksheet:getUsedRange()可知被使用填充了数据的单元格区域范围,对范围中的数据行逐一自适应行高即 ...

我只想给设置了自动换行的列设置自适应行高,其他的列不设置自适应行高
dd8ffb495b72daa92e17706cd3d4e5a.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-9-30 15:32:00
8#
本帖最后由 Wilson.Zhang 于 2024-9-30 15:42 编辑
婧1022 发表于 2024-9-30 14:38
我只想给设置了自动换行的列设置自适应行高,其他的列不设置自适应行高

可以通过暂停绘制和恢复绘制提升性能,参考如下代码:
  1. var usedDataRange = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.data);
  2. //  暂停绘制
  3. sheet.suspendPaint();
  4. for (var i = usedDataRange.row; i < usedDataRange.row + usedDataRange.rowCount; i++) {
  5.     sheet.autoFitRow(i);
  6. }
  7. //  恢复绘制
  8. sheet.resumePaint();
复制代码

自适应行高对一行内的每个单元格生效,无法将控制粒度细化到指定的某个单元格。我们也测试导入设置了自动换行和自适应行高的Excel文件至SpreadJS,导入后换行效果依然存在,如下动图所示。

autoFitRow.gif
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-17 14:31:25
9#
您好!由于您较长时间未回复,且从跟帖回复中了解到问题已得到有效解答,那就结帖了。如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部