找回密码
 立即注册

QQ登录

只需一步,快速开始

程序员的苦难日子

注册会员

4

主题

15

帖子

39

积分

注册会员

积分
39
最新发帖
程序员的苦难日子
注册会员   /  发表于:2023-10-11 10:51  /   查看:2236  /  回复:10
1金币
本帖最后由 Richard.Huang 于 2023-10-12 09:40 编辑

产品:SpreadJS

Total单列总和计算如何保留小数点2位

直接上图
如图
1:红色部分为计算后的结果
2:蓝色部分是包含小数计算

WechatIMG62.jpg

代码如下:
WechatIMG63.jpg
这块是日期加星期几的双循环
拿到对应列数据后通过公司计算得到总和
目前问题是计算出来的总和是整数,需求是想保留小数点2位

请问怎么改写这块公司,用最简单的方式去实现。

最佳答案

查看完整内容

您好,您可以在设置完公式之后设置格式,将您目标区域的单元格设置成保留两位小数的格式即可:使用到的API分别为 getRange:https://demo.grapecity.com.cn/sp ... .Worksheet#getrange formatter:https://demo.grapecity.com.cn/sp ... CellRange#formatter 示例: sheet.getRange(0, 0, 10, 1, GC.Spread.Sheets.SheetArea.viewport).formatter("0.00");

10 个回复

倒序浏览
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-11 10:51:10
来自 2#
您好,您可以在设置完公式之后设置格式,将您目标区域的单元格设置成保留两位小数的格式即可:使用到的API分别为
getRange:https://demo.grapecity.com.cn/sp ... .Worksheet#getrange
formatter:https://demo.grapecity.com.cn/sp ... CellRange#formatter

示例:
sheet.getRange(0, 0, 10, 1, GC.Spread.Sheets.SheetArea.viewport).formatter("0.00");
回复 使用道具 举报
程序员的苦难日子
注册会员   /  发表于:2023-10-11 12:43:27
3#
Richard.Huang 发表于 2023-10-11 11:46
您好,您可以在设置完公式之后设置格式,将您目标区域的单元格设置成保留两位小数的格式即可:使用到的API ...

你好,我刚用了这个代码 可以实现数据保留小数点2位  
但是如果要通过数据计算得到的Total保留小数点 这个好像不生效
WechatIMG66.jpg

WechatIMG67.jpg

我修改代码设置 -1行 7列 1,1,没用
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-11 15:39:10
4#
程序员的苦难日子 发表于 2023-10-11 12:43
你好,我刚用了这个代码 可以实现数据保留小数点2位  
但是如果要通过数据计算得到的Total保留小数点 这 ...

您好,我不太明白您的意思,您的意思是执行以下代码不生效是吗?
sheet.getRange(-1,7).formatter("0.00");
如果是的话,能否提供一份可供我们复现的Demo,或者您不生效的文件给我们也行,我们进行相应的测试
回复 使用道具 举报
程序员的苦难日子
注册会员   /  发表于:2023-10-11 15:40:33
5#
Richard.Huang 发表于 2023-10-11 15:39
您好,我不太明白您的意思,您的意思是执行以下代码不生效是吗?
sheet.getRange(-1,7).formatter("0.00 ...

生效,但只是数据生效,表头total计算这个没生效
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-11 16:50:28
6#
程序员的苦难日子 发表于 2023-10-11 15:40
生效,但只是数据生效,表头total计算这个没生效

您好,请问能否提供一个可供我们复现的Demo,方便我们更好地为您解决问题
回复 使用道具 举报
程序员的苦难日子
注册会员   /  发表于:2023-10-11 17:04:00
7#
Richard.Huang 发表于 2023-10-11 15:39
您好,我不太明白您的意思,您的意思是执行以下代码不生效是吗?
sheet.getRange(-1,7).formatter("0.00 ...

WechatIMG68.jpg

WechatIMG69.jpg
就是这里。我的意思是。我通过这个方式  改变了下面数据 之前是0 现在是0.0。保留了小数点
但是顶部那个total -1行还是0行 第7列 我也想变成小数点的。现在是自动取整
回复 使用道具 举报
程序员的苦难日子
注册会员   /  发表于:2023-10-11 17:21:32
8#
Richard.Huang 发表于 2023-10-11 16:50
您好,请问能否提供一个可供我们复现的Demo,方便我们更好地为您解决问题

WechatIMG72.jpg


单列总和的计算 得到结果自动变成142。
实际是142.2

就这块单列数据计算后得到的total。怎样保留小数点 而不是取整
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-10-11 17:46:04
9#
程序员的苦难日子 发表于 2023-10-11 17:21
单列总和的计算 得到结果自动变成142。
实际是142.2

您好,我明白您的意思了,但是我在本地按照您的描述并没有复现此情景,我们需要您提供相关Demo来让我们验证一下您的问题,请提供相关文件以及具体的复现步骤
回复 使用道具 举报
程序员的苦难日子
注册会员   /  发表于:2023-10-12 10:55:24
10#
程序员的苦难日子 发表于 2023-10-11 17:04
就是这里。我的意思是。我通过这个方式  改变了下面数据 之前是0 现在是0.0。保留了小数点
但是顶 ...

解决了。需要这样写
const totalStyle = new spreadNS.Style()
    totalStyle.backColor = "rgb(222, 243, 242)"
    totalStyle.font = "10pt Calibri"
    totalStyle.foreColor = "#000000"

    //顶部小数点
    totalStyle.formatter = "#,##0.0"
    sheet.setStyle(0, -1, totalStyle, GC.Spread.Sheets.SheetArea.colHeader);

    const headerStyle = new spreadNS.Style()
    const headerColor = 'rgb(29, 90, 172)'
    headerStyle.backColor = headerColor
    headerStyle.foreColor = "#ffffff"
    headerStyle.font = "10pt Calibri"
    sheet.setStyle(-1, -1, headerStyle, GC.Spread.Sheets.SheetArea.colHeader)
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部