找回密码
 立即注册

QQ登录

只需一步,快速开始

甘茄

注册会员

3

主题

12

帖子

27

积分

注册会员

积分
27
  • 96

    金币

  • 3

    主题

  • 12

    帖子

最新发帖
甘茄
注册会员   /  发表于:2023-11-16 11:27  /   查看:1549  /  回复:14
4金币
本帖最后由 Joestar.Xu 于 2023-11-20 12:09 编辑


产品:SpreadJS

在初始化的时候setfomatter为yyyyMMdd;@打印getformatter时有东西,但是excel的值渲染上后getfomatter就undefined了,这个格式在哪个过程中有可能掉?哪个环节出了问题让我设置的格式掉了;需求为不要显示标准时间,这一列要纯文本,或许不用setformatter有别的方法不让它格式化时间?
微信图片_20231116111345.png
微信图片_20231116111038.jpg
微信图片_20231116111006.jpg

最佳答案

查看完整内容

您好,将格式设置为字符串,只有通过setFormatter(0,0,"@")的方式来实现。之所以百分数传给后端变成了小数是因为一个是格式化的格式化值,而另一个是真实值。您可以详情查看这篇技术博客:https://gcdn.grapecity.com.cn/showtopic-186432-1-1.html 因此为了解决您的问题,您需要先设置格式,再输入值,那么后端拿到的值就是字符串类型的百分数。要嘛,您可以通过getText()就拿用户看到的值。

14 个回复

倒序浏览
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-16 11:27:32
来自 14#
甘茄 发表于 2023-11-17 09:21
您好,除了设置格式为@还有其他方法没有,可以设置格式为字符串不,因为我现在发现56%这样的数自动转化为 ...

您好,将格式设置为字符串,只有通过setFormatter(0,0,"@")的方式来实现。之所以百分数传给后端变成了小数是因为一个是格式化的格式化值,而另一个是真实值。您可以详情查看这篇技术博客:https://gcdn.grapecity.com.cn/showtopic-186432-1-1.html
image.png59034728.png

因此为了解决您的问题,您需要先设置格式,再输入值,那么后端拿到的值就是字符串类型的百分数。要嘛,您可以通过getText()就拿用户看到的值。
image.png862956542.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-16 14:19:34
2#
您好,请问您所说的Excel值渲染后getfomatter就undefined了的意思是,您初始化的时候设置了单元格格式,然后导入Excel文件,原本设置格式的单元格用getformatter拿不到了是吗?

如果是的话,那么这是确实存在的,因为导入是将您原本页面上的内容清空,然后将您导入的文件原封不动的渲染到页面上。因此您拿不到格式信息是正常的。

如果您不想格式化时间,就希望纯文本输出日期,您可以参考这篇FAQ的问题3:https://demo.grapecity.com.cn/sp ... /format/oadate-faqs
回复 使用道具 举报
甘茄
注册会员   /  发表于:2023-11-16 14:57:55
3#
Richard.Huang 发表于 2023-11-16 14:19
您好,请问您所说的Excel值渲染后getfomatter就undefined了的意思是,您初始化的时候设置了单元格格式,然 ...

你好,我参考了你发的这篇,我在此单元格转化为Date对象时强制设置文本格式为@并且强制setvalue为我需要的个日期格式,但是excel保存完成后此单元格还是以超极长的标准时间存储并展示了,如果您方便的话,[img][/img]可以给我看看吗
回复 使用道具 举报
甘茄
注册会员   /  发表于:2023-11-16 15:05:13
4#
Richard.Huang 发表于 2023-11-16 14:19
您好,请问您所说的Excel值渲染后getfomatter就undefined了的意思是,您初始化的时候设置了单元格格式,然 ...

请您看看
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-16 15:58:39
5#
您好,我按照您的描述在SpreadJSV16.2.2中进行重现,但是并没出现您的问题。请问能否告知您的其他详情信息,例如您使用的SpreadJS版本等
image.png190579527.png
image.png72811583.png
回复 使用道具 举报
甘茄
注册会员   /  发表于:2023-11-16 16:35:28
6#
Richard.Huang 发表于 2023-11-16 15:58
您好,我按照您的描述在SpreadJSV16.2.2中进行重现,但是并没出现您的问题。请问能否告知您的其他详情信息 ...

您好,我使用的spreadjs版本较老,我在维护几年前的系统,请告诉我老版本的spreadjs怎么阻止它格式化
回复 使用道具 举报
甘茄
注册会员   /  发表于:2023-11-16 17:41:03
7#
Richard.Huang 发表于 2023-11-16 15:58
您好,我按照您的描述在SpreadJSV16.2.2中进行重现,但是并没出现您的问题。请问能否告知您的其他详情信息 ...

您好,请问我输入9.3789的时候我拿到这个格子的值是9.3789但是展示出来的是9.38,我怎么拿到展示出来的值,这种传入后端的实际值跟用户看到的值不一样的情况怎么校验
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-16 18:11:01
8#
甘茄 发表于 2023-11-16 17:41
您好,请问我输入9.3789的时候我拿到这个格子的值是9.3789但是展示出来的是9.38,我怎么拿到展示出来的值 ...

您好,您可以排查一下是否在这个单元格上设置了保留两位小数的格式:
image.png680866393.png
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-11-16 18:12:33
9#
甘茄 发表于 2023-11-16 16:35
您好,我使用的spreadjs版本较老,我在维护几年前的系统,请告诉我老版本的spreadjs怎么阻止它格式化

您好,我们之前对于日期的存储为了避免时区因素造成不同用户看到的时间不同,因此采用了特殊的日期数据存储方式。方便告知一下您使用的SpreadJS版本号吗?我们基于该版本为您尝试看能否提供一个可以解决的方案
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部