找回密码
 立即注册

QQ登录

只需一步,快速开始

Kin7

注册会员

7

主题

22

帖子

57

积分

注册会员

积分
57
最新发帖
Kin7
注册会员   /  发表于:2024-4-25 21:58  /   查看:203  /  回复:3
1金币
我们的需求如下:
1、设置单元格在输入数字之后靠右排列。
2、输入日期则保持输入的字符串不被格式化。
3、输入其他格式都还原输入的字符串,不要被格式化。
并且需要在fromJSON读取文件之后之后保持这样的设置。
请问具体该怎么设置?

3 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-26 11:11:24
沙发
对于您的问题我来分开进行回答:
1. 正常情况下,输入数字就是靠右排列的,除非您已经在该单元格上设置了居中或者居左的文本排列样式,如果是这种情况,我想您只能通过监听事件来动态设置单元格的文本对齐方式了:https://demo.grapecity.com.cn/sp ... ts.Events#editended
2. 保证输入日期不被格式化的意思是,您期望输入的是什么样子,那么就是什么样子是吗,如果是的话,您需要提前将您的要填写日期的单元格设置成文本格式,这样您输入一个日期,也只是会被作为字符串进行存储
3. 这个同第二问,需要提前将单元格设置成文本格式 image.png709114989.png
4. 这个fromJSON操作是将您原本的文件进行还原,如果您已经提前做了上述操作,则无需做其他操作就能满足您的需求
回复 使用道具 举报
Kin7
注册会员   /  发表于:2024-4-26 21:00:26
板凳
Richard.Huang 发表于 2024-4-26 11:11
对于您的问题我来分开进行回答:
1. 正常情况下,输入数字就是靠右排列的,除非您已经在该单元格上设置了 ...

对于第二条,用户输入无法预测,而editended、cellchang事件拿到的都是格式化之后的值,只有editing时拿到的是格式化之前的值。但是实时监听用户输入又是性能较差的处理方式,有没有可以监听格式化的事件呢?或者统一设置某种格式化的开关?
另外想知道设置单元格文本格式对应的formatter是“@”,那数字格式有对应的formatter值吗?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:7 天前
地板
如果您要统一进行格式化,可以通过defaultStyle将您的默认样式中的格式设置成文本,代码如下:
var ds = sheet.getDefaultStyle();
ds.formatter = "@"
sheet.setDefaultStyle(ds)
// 但是注意,默认样式是样式优先级中最低的一档,如果存在单元格上设置了样式,那么这个操作对于这些单元格不生效

数字格式的formatter为"0.00",保留两位小数就是0.00,三位就0.000,以此类推
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部