找回密码
 立即注册

QQ登录

只需一步,快速开始

西若枫

注册会员

10

主题

28

帖子

112

积分

注册会员

积分
112
西若枫
注册会员   /  发表于:2022-8-17 21:11  /   查看:2353  /  回复:19
1金币
现在需要设置科学计数法,但是要以角标形式显示 image.png565575866.png ,所以只能通线自定义序列化自己计算结果,但是format方法无法设置角标,只能对原始数据处理,请问如何设置角标 image.png728088378.png

最佳答案

查看完整内容

原因还是字体问题,有些字体是没有上角标的,我现在直接注入罗马字体使用,就可以了,谢谢

19 个回复

倒序浏览
最佳答案
最佳答案
西若枫
注册会员   /  发表于:2022-8-17 21:11:34
来自 18#
沉沉 发表于 2022-8-23 10:03
我再确认一下你的需求哈。你提供的science.js 已经实现了科学计数法,只是会导致字体不一致问题。我这边 ...

原因还是字体问题,有些字体是没有上角标的,我现在直接注入罗马字体使用,就可以了,谢谢
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-18 10:05:46
2#
您好,
请提供一个可直接复现此问题的demo,这边需要在demo基础上调试调研下问题原因,以及是否有相应解决方案。
附件为demo示例模板,您可以添加上自己的代码,可复现此问题即可。另,请结合demo详细描述下复现步骤,以便这边理解您的需求。

demo-designer模板.html

4.66 KB, 下载次数: 56

回复 使用道具 举报
沉沉悬赏达人认证
金牌服务用户   /  发表于:2022-8-18 11:19:42
3#
想问下这里为什么需要自定义序列化,富文本在json转换过程依然会被保留格式 image.png988338012.png
所以这里是不是只需要处理将数字转换为富文本的科学计数法就行呢?
这里提供一个小demo,
  1.   switchNum(obj) {
  2.       var p = Math.floor(Math.log(obj) / Math.LN10);
  3.       var n = obj * Math.pow(10, -p);
  4.       return [
  5.         {
  6.           "style": {
  7.             "font": "14px "Gotham SSm A", "Gotham SSm B", "Open Sans", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif",
  8.             "foreColor": "rgb(0, 0, 0)",
  9.             "textDecoration": 0
  10.           },
  11.           "text": n + "*10"
  12.         },
  13.         {
  14.           "style": {
  15.             "font": "12px "Gotham SSm A", "Gotham SSm B", "Open Sans", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif",
  16.             "foreColor": "rgb(0, 0, 0)",
  17.             "textDecoration": 0,
  18.             "vertAlign": 1
  19.           },
  20.           "text": p + "\r\n"
  21.         }
  22.       ]
  23.     }
  24. sheet3.setValue(0, 0, 1230000);
  25.       sheet3.setValue(0, 1, {
  26.         richText:
  27.             this.switchNum(sheet3.getValue(0, 0))
  28.       });
  29.       sheet3.setFormula(0, 2, "A1");
复制代码
最后结果为
image.png445390929.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-18 17:15:01
4#
楼主可参考楼上demo,看是否对此问题有所帮助,有疑问欢迎追帖交流。
回复 使用道具 举报
西若枫
注册会员   /  发表于:2022-8-19 16:47:17
5#
本帖最后由 西若枫 于 2022-8-19 16:50 编辑
沉沉 发表于 2022-8-18 11:19
想问下这里为什么需要自定义序列化,富文本在json转换过程依然会被保留格式
所以这里是不是只需要处理将数 ...

首先谢谢您的回答,因为我是要一个完整的科学记数法的,只是因为系统的科学计数法显示样式不符合。你这样直接设置富文本我存储的数据就对不上,比如1.23 X 10 的3次方我入库的数据应该1230,但是如果是富文本入库数据就不对, image.png552191772.png 。并且我动态变更数据啥的都要实时能变。包括给公式计算结果也要用科学计数法表示。核心就是要保持系统原有科学计数法功能只是样式不一样。我自定义了一个科学计数法。我现在使用unicode角标把右上角标显示出来 image.png150578307.png 但是这个方法也存在问题,很多字体的123,和0456789大小不一样导致不对齐 image.png239281920.png

我把核心实现代码贴在下面



science.js.zip

1.99 KB, 下载次数: 59

回复 使用道具 举报
西若枫
注册会员   /  发表于:2022-8-19 16:52:02
6#
Lynn.Dou 发表于 2022-8-18 10:05
您好,
请提供一个可直接复现此问题的demo,这边需要在demo基础上调试调研下问题原因,以及是否有相应解决 ...

谢谢您的回答,问题我在上面帖子描述了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-19 18:05:04
7#
需求收到,这边结合您的代码再调研下,有结果的话在贴中回复您。
回复 使用道具 举报
西若枫
注册会员   /  发表于:2022-8-20 14:06:25
8#
Lynn.Dou 发表于 2022-8-18 10:05
您好,
请提供一个可直接复现此问题的demo,这边需要在demo基础上调试调研下问题原因,以及是否有相应解决 ...

好的,非常感谢
回复 使用道具 举报
沉沉悬赏达人认证
金牌服务用户   /  发表于:2022-8-22 14:48:38
10#
本帖最后由 沉沉 于 2022-8-22 15:35 编辑
西若枫 发表于 2022-8-19 16:47
首先谢谢您的回答,因为我是要一个完整的科学记数法的,只是因为系统的科学计数法显示样式不符合。你这样 ...

这边用你给的demo,实现结果没有复现字体问题 image.png547780761.png ,是否可以提供关于设计器更多相关代码
image.png295023802.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部