没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:王香|2019-04-10 16:27:16.000|阅读 653 次
概述:在不同的应用场景中,数字格式千变万化,即便强大如Excel,也无法满足所有的数字格式的需求。有用户提出了这样的需求:小数超过两位时,只保留两位且不做进位(例如123.456显示123.45);小数不足两位时,无后缀0(例如123.4就显示123.4);没有小数时只显示整数(例如123就显示123);整数部分需要能够每三位添加一个分位符(例如1234显示1,234)。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
在不同的应用场景中,数字格式千变万化,即便强大如Excel,也无法满足所有的数字格式的需求。有用户提出了这样的需求:小数超过两位时,只保留两位且不做进位(例如123.456显示123.45);小数不足两位时,无后缀0(例如123.4就显示123.4);没有小数时只显示整数(例如123就显示123);整数部分需要能够每三位添加一个分位符(例如1234显示1,234)。
针对这样的“非典型需求”,我们即无法直接用Excel实现,Spread JS也没有原生的数字格式的支持。原本用户想用条件格式来实现,但实际上Spread JS提供了更加简洁的思路——自定义格式接口,这样用户可以最大限度地实现自己想要的格式。
解决自定义格式的问题,可以分为以下几个步骤:
示例中主要做了两件事,一是通过继承GeneralFormatter类来实现自定义数字格式,二是在format方法中实现了自定义数字格式的业务逻辑。下面的代码部分就是第一步,如何通过继承GeneralFormatter来实现自定义数字格式。
var customFormatterTest = {}; customFormatterTest.prototype = GC.Spread.Formatter.GeneralFormatter; // format方法中,第一个参数obj就是当前单元格的值(带类型) customFormatterTest.format = function (obj, conditionalForeColor) { return number_format(obj, 2, ".", ","); };
上述代码通过继承GeneralFormatter类,并重写format方法实现了自定义数字格式,在format方法中,第一个参数obj就是当前单元格的值,拿到单元格的值后,可以根据业务需求进行自定义显示格式,方法返回值是一个字符串。
第二步,实现自定义数字格式,注意最后返回值是字符串就行了。
function number_format(number, decimals, dec_point, thousands_sep, isRoundUp) { /* * 参数说明: * number:要格式化的数字 * decimals:保留几位小数 * dec_point:小数点符号 * thousands_sep:千分位符号 * isRoundUp:是否四舍五入 * */ number = (number + '').replace(/[^0-9+-Ee.]/g, ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function (n, prec) { var k = Math.pow(10, prec); // 是否四舍五入 if(isRoundUp){ return '' + Math.round(n * k) / k; } // floor 实现了只舍去不进位的逻辑 return '' + Math.floor(n * k) / k; }; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); var re = /(-?\d+)(\d{3})/; while (re.test(s[0])) { s[0] = s[0].replace(re, "$1" + sep + "$2"); } if ((s[1] || '').length < prec) { s[1] = s[1] || ''; } // 当小数部分为空时,不显示小数点 if(s[1] === ""){ return s.join(""); } return s.join(dec); }
纯前端表格控件SpreadJS,是市面上布局与功能都与 Excel 高度类似的一款表格控件,全中文操作界面,适用于.NET、Java、移动端等多个平台的类 Excel 数据开发,备受华为、中通、民航飞行学院等国内知名企业客户青睐。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
FastReport .NET 的主要功能之一是能够将多份报告合并为一份。当您需要合并来自不同来源的数据或以更方便的格式呈现信息时,此功能非常有用。在本文中,我们将讨论如何在 FastReport .NET 中将多份报告合并为一份。
本文将手把手教你如何用VMProtect对这一关键函数进行虚拟化保护,大幅提升代码安全性,让逆向工程攻击者无从下手!
在 PDF 文档中添加页眉和页脚有助于保持一致的版式和专业的外观。本文将介绍如何使用 Spire.PDF for Java,通过 Java 在现有的 PDF 文档中添加页眉和页脚,并提供详细的步骤和代码示例。
对于开发人员来说,由于自动化和定制化,通常首选使用编程方法来去除 PDF 中的水印。Aspose.PDF 提供可靠且可定制的解决方案,可无缝集成到各种应用程序中,确保准确性并保持文档完整性。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢