找回密码
 立即注册

QQ登录

只需一步,快速开始

qq707820685

初级会员

32

主题

138

帖子

388

积分

初级会员

积分
388
qq707820685
初级会员   /  发表于:2020-1-16 16:23  /   查看:6218  /  回复:9
1金币
本帖最后由 qq707820685 于 2020-4-7 16:38 编辑

test.jpg
因业务需要,上图中这列的单元格文本内容前需要放置不同的图片(这里用杰尼龟代替)。因此我们使用了自定义单元格,在paint方法中绘制图片,并且在drawText时将x坐标右移以达到我们的业务需求。现在的问题是:将此列自定义单元格设置成autoFitRow后,自适应触发的边际不对了。我们设想的是触发的边际是文本内容的宽度超过我们自己绘制的文本区域(也就是不包含单元格内图片区域的宽度),但是实际上spreadjs自适应行高的触发边际是内容的宽度超过单元格的宽度。请问有什么办法可以解决吗?



最佳答案

查看完整内容

getAutoFitHeight与getAutoFitWidth 也就是在你做自适应单元格操作的时候会触发的函数 例如双击调整自适应,在这个触发方法中的return的内容就是返回一个宽度或者高度。操作的结果就是单元格会调整为你返回的宽度或者高度的大小。reurn 100那么单元格大小在双击自适应后就会调整为100

9 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-1-16 16:23:36
来自 8#
getAutoFitHeight与getAutoFitWidth 也就是在你做自适应单元格操作的时候会触发的函数
例如双击调整自适应,在这个触发方法中的return的内容就是返回一个宽度或者高度。操作的结果就是单元格会调整为你返回的宽度或者高度的大小。reurn 100那么单元格大小在双击自适应后就会调整为100
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-1-16 18:26:18
2#
这个问题需要进一步调研暂时改为未处理
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-1-17 09:59:34
3#
要重写自定义单元格的getAutoFitHeight和getAutoFitWidth,参考这个demo
https://demo.grapecity.com.cn/Sp ... tipHyperLinkPicture
回复 使用道具 举报
qq707820685
初级会员   /  发表于:2020-4-7 16:28:15
4#
ClarkPan 发表于 2020-1-17 09:59
要重写自定义单元格的getAutoFitHeight和getAutoFitWidth,参考这个demo
https://demo.grapecity.com.cn/S ...

请问这个demo中如何设置成自动行高呢?
回复 使用道具 举报
qq707820685
初级会员   /  发表于:2020-4-7 16:37:27
5#
ClarkPan 发表于 2020-1-17 09:59
要重写自定义单元格的getAutoFitHeight和getAutoFitWidth,参考这个demo
https://demo.grapecity.com.cn/S ...

我在demo中加了代码
sheet.getCell(1, 1).wordWrap(true);
sheet.autoFitRow(1);
并不能达到正确自动行高额效果
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-4-7 18:52:41
6#
首先SpreadJS的行高列宽设置跟Excel一样是触发式的,不是自适应的。如果要做自适应只能在事件中进行判断控制
监听RowHeightChanged 和 ColumnWidthChanged
https://demo.grapecity.com.cn/sp ... ightChanged_EV.html
https://demo.grapecity.com.cn/sp ... idthChanged_EV.html
在事件中进行autoFit设置
回复 使用道具 举报
qq707820685
初级会员   /  发表于:2020-4-9 11:02:19
7#
ClarkPan 发表于 2020-4-7 18:52
首先SpreadJS的行高列宽设置跟Excel一样是触发式的,不是自适应的。如果要做自适应只能在事件中进行判断控 ...

请问你可以给我详细解释下getAutoFitHeight、getAutoFitWidth的作用吗,api中说的是Gets a cell's height(width) that can be used to handle the row's automatic fit,这个解释太过于简单了,完全不清楚具体有什么作用。比如getAutoFitHeight中返回100,getAutoFitWidth中返回100,会有什么作用?
回复 使用道具 举报
qq707820685
初级会员   /  发表于:2020-4-9 11:35:09
9#
ClarkPan 发表于 2020-4-9 11:22
getAutoFitHeight与getAutoFitWidth 也就是在你做自适应单元格操作的时候会触发的函数
例如双击调整自适应 ...

哦懂了懂了 文档的说明真的太简单了 谢谢
回复 使用道具 举报
Fiooona
论坛元老   /  发表于:2020-4-9 16:40:58
10#
组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部