找回密码
 立即注册

QQ登录

只需一步,快速开始

cqx

金牌服务用户

2

主题

6

帖子

28

积分

金牌服务用户

积分
28
  • 98

    金币

  • 2

    主题

  • 6

    帖子

最新发帖
cqx
金牌服务用户   /  发表于:2024-11-15 10:10  /   查看:156  /  回复:9
1金币
本帖最后由 cqx 于 2024-11-15 10:27 编辑

wps: 18c95302847bce2cd9ad87a512ea8f3.png326142577.png img_v3_02gl_6135404c-9c1b-4265-849d-f38edd322d2g.jpg537387694.png
类似这种效果,没有在单元格格式化中找到配置
1d939739daffc617f066626214ce2ae.png158765868.png

找到一种配置的公式,但是只能显示一位小数,如何让他可以显示两位小数
image.png796972656.png

9 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:2024-11-15 10:39:18
沙发
您好!您需要的”万元“数据格式可以自定义实现,如下图所示,且导出为Excel后仍然有效。
万元格式.png587570495.png

如果同时需要设置小数精度,如下图所示:
万元格式加小数点.png107525633.png
回复 使用道具 举报
cqx
金牌服务用户   /  发表于:2024-11-15 10:51:19
板凳
Wilson.Zhang 发表于 2024-11-15 10:39
您好!您需要的”万元“数据格式可以自定义实现,如下图所示,且导出为Excel后仍然有效。

我想要的效果是12345,变成1.23万元,你这个只是在后面加了单位
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-11-15 12:14:37
地板
本帖最后由 Wilson.Zhang 于 2024-11-15 12:16 编辑
cqx 发表于 2024-11-15 10:51
我想要的效果是12345,变成1.23万元,你这个只是在后面加了单位

了解了,就是将数值除以1000后的结果再加上单位”万元“。您可以尝试下自定义格式,重写format方法定义转换逻辑,比如除以10000并将结果保留两位小数,并在最后接上单位文本“万元”,如下图所示:
1731644133587.png261185912.png

可以参考如下代码:
  1. function CustomNumberFormat() {
  2.    
  3. }

  4. CustomNumberFormat.prototype = new GC.Spread.Formatter.FormatterBase();

  5. CustomNumberFormat.prototype.format = function (obj, formattedData) {
  6.     console.log('cuatom number format, formattedata: ', formattedData);
  7.     return obj ? (obj / 10000).toFixed(2) + '万元' : "";
  8. };
复制代码

可以参考官网教程了解自定义格式详情:
https://demo.grapecity.com.cn/sp ... om-formatter/purejs

回复 使用道具 举报
cqx
金牌服务用户   /  发表于:2024-11-15 13:02:11
5#
Wilson.Zhang 发表于 2024-11-15 12:14
了解了,就是将数值除以1000后的结果再加上单位”万元“。您可以尝试下自定义格式,重写format方法定义转 ...

字段可能比较多,通过代码处理会比较繁琐,有没有可以配置单元格formatter的方式
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-11-15 15:42:07
6#
cqx 发表于 2024-11-15 13:02
字段可能比较多,通过代码处理会比较繁琐,有没有可以配置单元格formatter的方式

通过代码可以对指定区域整体设置,如果用UI操作设置单元格格式,也需要选择单元格或者单元格区域,效率几乎差不多。而且,正是因为与WPS中解析出来的格式0"."0"万元"无法满足您对于小数点后保留两位小数的精度要求,才向您推荐了自定义单元格格式的方式。您可以综合评估下选择合适的设置方式即可。
回复 使用道具 举报
cqx
金牌服务用户   /  发表于:2024-11-15 17:30:05
7#
本帖最后由 cqx 于 2024-11-15 17:31 编辑
Wilson.Zhang 发表于 2024-11-15 15:42
通过代码可以对指定区域整体设置,如果用UI操作设置单元格格式,也需要选择单元格或者单元格区域,效率几 ...

通过代码格式化currentSpread.getRange(6, 12, 1, 4).formatter(new CustomNumberFormat())后,这个单元格原来的样式丢失了,如何保持原样式
screenshot-20241115-172845.png622888793.png
image.png370524596.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-11-15 17:48:32
8#
cqx 发表于 2024-11-15 17:30
通过代码格式化currentSpread.getRange(6, 12, 1, 4).formatter(new CustomNumberFormat())后,这个单元 ...

您试试单独对这个单元格设置formatter看是否还能复现问题,如果还会复现问题,需要您提供一个能够复现问题的demo。
回复 使用道具 举报
cqx
金牌服务用户   /  发表于:2024-11-15 18:01:32
9#
本帖最后由 cqx 于 2024-11-18 09:36 编辑
Wilson.Zhang 发表于 2024-11-15 17:48
您试试单独对这个单元格设置formatter看是否还能复现问题,如果还会复现问题,需要您提供一个能够复现问 ...

一样是有样式丢失问题 image.png299948424.png ,有没有在getRange的时候设置保持原来样式的属性
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:7 天前
10#
cqx 发表于 2024-11-15 18:01
一样是有样式丢失问题

您所的样式都是是指原来在单元格中居右显示的内容设置了“万元”格式后居左显示了?可以注意到,在设置“万元”格式前,单元格中的数据是数值,数值默认居右显示,设置了“万元”格式后,数据变成文本字符串,默认居左显示。这种显示规则遵顼了与MS Excel一致的规则,如果您希望设置“万元”格式后依然能居右显示,可以在设置格式后对单元格设置文本居右显示。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部