找回密码
 立即注册

QQ登录

只需一步,快速开始

大白菜

中级会员

77

主题

257

帖子

884

积分

中级会员

积分
884

圣诞拼拼乐微信认证勋章

大白菜
中级会员   /  发表于:2022-9-22 19:26  /   查看:1607  /  回复:5
1金币
GcExcel  怎么设置单元格类型比如是字符串。

最佳答案

查看完整内容

嗯,如我楼上给你说的情况,这个确实是2个概念,数字在spreadjs或者excel的“界面”上展示时,规则是超过12位用科学计数法来显示,这个是控件或者软件自己定义的显示方式 spreadjs也采取了兼容于excel的显示方式 但是实际上在文件中存储时,比如存为xlsx文件时,两者存储的实际上也都是原始值,不是显示的这个科学计数法字符串 对gcexcel来说,实际上不存在显示问题,所以保存为json或者xlsx文件是保存的这个数字同上也是 ...

5 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-22 19:26:30
来自 6#
本帖最后由 Richard.Ma 于 2022-9-28 17:19 编辑

嗯,如我楼上给你说的情况,这个确实是2个概念,数字在spreadjs或者excel的“界面”上展示时,规则是超过12位用科学计数法来显示,这个是控件或者软件自己定义的显示方式
spreadjs也采取了兼容于excel的显示方式

但是实际上在文件中存储时,比如存为xlsx文件时,两者存储的实际上也都是原始值,不是显示的这个科学计数法字符串


对gcexcel来说,实际上不存在显示问题,所以保存为json或者xlsx文件是保存的这个数字同上也是原始值,不是科学计数法。

至于你通过程序的printIn或者Console.Writeline等最终显示为8位仅仅只是.NET或者java默认的数字格式化方式就是这样罢了

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-23 18:10:07
2#

gc单元格类型没有文本的概念

你指的应该是单元格格式设置为字符串吧,可以设置格式字符串为“@”即可

  1. sheet.Cells[0, 0].NumberFormat = "@";
复制代码
回复 使用道具 举报
大白菜
中级会员   /  发表于:2022-9-26 15:10:16
3#
Richard.Ma 发表于 2022-9-23 18:10
gc单元格类型没有文本的概念

你指的应该是单元格格式设置为字符串吧,可以设置格式字符串为“@”即可
...

现在我单元格变成科学计数法了,spreadjs是12位数字自动变科学计数法,后端确是8位就变成科学计数法了,现在没法统一了,我现在就是想spreadjs 显示123456789222,我后端就是科学计数法了,所以想处理这种情况,有别的方法吗,我觉得这是一个bug.
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-26 19:01:51
4#
后端就是科学计数法,这个不是bug,后端实际上没有所谓的显示结果,前端才会涉及到显示,因为这个值就是一个数字,这个数字在后端getvalue后也是数字,如果是print出来,才是格式化的一个字符串,.NET或者java有默认的格式化,可能对很多位小数就会用科学计数法的方式显示为 字符串。

以.NET为例,在转为string时可以也设置格式,我不确定你后端用的是.NET还是java,应该都有类似的方法

1664189928036.png364633178.png
回复 使用道具 举报
大白菜
中级会员   /  发表于:2022-9-28 15:12:38
5#
Richard.Ma 发表于 2022-9-26 19:01
后端就是科学计数法,这个不是bug,后端实际上没有所谓的显示结果,前端才会涉及到显示,因为这个值就是一 ...

好奇的是,spread JS和GcExcel 这个科学计数法的长度都不一样,一个12 为,一个8位
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部