自定义格式,点击切换后,鼠标在sheet上移动,依旧加载
demo如下:
- import GC from "@grapecity/spread-sheets";
- // 切换的格式
- const NUMBER_FORMATTER_TYPE = [1, 1, 10, 100, 1000, 10000, 100000000];
- window.INIT_UNIT = 0;
- /**
- * 自定义数据格式
- * @param formattedData 格式级别
- * @constructor
- */
- export function NumberFormat(formattedData) {
- this.formattedData = formattedData;
- }
- // 自定义数值格式化(元,百元,千元,万元,亿元,转换)
- NumberFormat.prototype = new GC.Spread.Formatter.FormatterBase();
- // NumberFormat.prototype = new GC.Spread.Formatter.GeneralFormatter();
- NumberFormat.prototype.format = function (obj) {
- return numberFormatter(obj, this.formattedData);
- }
- /**
- * 格式化操作业务代码
- * @param number 格式化数值
- * @param formattedData 格式化类别
- * @returns {string} 转换后数值
- */
- function numberFormatter(number, formattedData) {
- let num = number;
- if (typeof(number) == 'number' && !isNaN(Number(number))) {
- // 转换时以原始单位转换
- let multiple = NUMBER_FORMATTER_TYPE[formattedData] / NUMBER_FORMATTER_TYPE[window.INIT_UNIT];
- console.log(number, multiple)
- switch (formattedData) {
- case 0:
- case 1:
- num = (number / multiple).toFixed(2);
- break;
- case 2:
- num = (number / multiple).toFixed(2);
- break;
- case 3:
- num = (number / multiple).toFixed(2);
- break;
- case 4:
- num = (number / multiple).toFixed(2);
- break;
- case 5:
- num = (number / multiple).toFixed(2);
- break;
- case 6:
- num = (number / multiple).toFixed(2);
- break;
- default:
- num = number;
- }
- return num.replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
- }
- return num;
- }
复制代码
|