如您截图所示,单元格格式中定义了一些规则,允许用户去自定义。但是基于您的需求,调研后发现Excel默认的原生格式都是四舍五入逻辑,即无法通过自定义规则去实现。
事实上,SpreadJS提供了自定义格式的能力(继承FormatterBase,注意与您截图所示的自定义概念做区分),在学习指南有相关介绍:
https://demo.grapecity.com.cn/sp ... om-formatter/purejs
示例代码如下:
- function CustomNumberFormat() {
- }
- CustomNumberFormat.prototype = new GC.Spread.Formatter.FormatterBase();
- CustomNumberFormat.prototype.format = function (obj, formattedData) {
- console.log(obj);
- if (typeof obj === "number") {
- var value = Math.trunc(obj * 100) / 100;
- return value.toString();
- } else {
- return obj ? obj.toString() : "";
- }
- };
- CustomNumberFormat.prototype.parse = function (str) {
- return new GC.Spread.Formatter.GeneralFormatter().parse(str);
- };
- sheet.setValue(0, 0, 123.234);
- sheet.setValue(1, 0, 12.225);
- sheet.getRange(0, 0, 10, 1).formatter(new CustomNumberFormat());
复制代码
这种方式下,就不支持在单元格格式弹窗中添加此自定义格式了,可以在工具栏新增一个button(或其他方式),核心是调用formatter方法应用该自定义格式。
|