rapid-spreadjs 1.0.58 → 1.0.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -8289,6 +8289,9 @@ const EChartsUtils = {
8289
8289
  else if (config.chartType == 350) {
8290
8290
  option = EChartsUtilsAll.chart350(config, xDataArr, yDataArr);
8291
8291
  }
8292
+ else if (config.chartType == 370) {
8293
+ option = EChartsUtilsAll.chart370(config, xDataArr, yDataArr, sheet);
8294
+ }
8292
8295
  if (option && typeof option === 'object') {
8293
8296
  //如果是隐藏的图表,则需要禁用ECharts的动画效果
8294
8297
  //原因是:如果ECharts使用了动画效果,图表渲染完成可能需要0.5秒,但是在导出ECharts统计图为图片的场景下时,可能在图表还没有渲染完成(动画效果还没结束)前就要获取图像了,此时可能就会造成获取到的图像内容丢失的情况
@@ -12831,6 +12834,7 @@ const FormulaUtils = {
12831
12834
  //自定义函数逻辑
12832
12835
  cusFun.prototype.evaluate = function () {
12833
12836
  // 获取该自定义公式被引用单元格的索引
12837
+ console.log('所有参数:', arguments);
12834
12838
  /**
12835
12839
  * 说明:
12836
12840
  * 如果isContext=true,则arguments的第一个参数为上下文参数,后面的参数才是自定义参数真正传入的参数
@@ -19350,6 +19354,137 @@ const FormulaUtils = {
19350
19354
  return d;
19351
19355
  },
19352
19356
  },
19357
+ {
19358
+ funName: 'YJDXPD',
19359
+ funDesc: '单项判定',
19360
+ funDefaultVal: null,
19361
+ isAcceptArea: true,
19362
+ funParams: [
19363
+ {
19364
+ name: '判定范围,格式如:-2,2、-2~2或±2',
19365
+ repeatable: false,
19366
+ optional: false,
19367
+ },
19368
+ {
19369
+ name: '判定值,如:1',
19370
+ repeatable: false,
19371
+ optional: false,
19372
+ },
19373
+ ],
19374
+ funCallback: (spread, sheet, retData) => {
19375
+ //如果传递的参数小于2个,则返回空字符串
19376
+ if (retData.allCellVals.length < 2) {
19377
+ return '';
19378
+ }
19379
+ retData.allCellVals[0]; retData.allCellVals[1];
19380
+ try {
19381
+ const rangeStr = retData.allCellVals[0], num = retData.allCellVals[1];
19382
+ // 参数基础校验
19383
+ if (typeof rangeStr !== 'string' || typeof num !== 'number' || isNaN(num)) {
19384
+ return '/';
19385
+ }
19386
+ // 去除字符串中的空格
19387
+ const cleanStr = rangeStr.replace(/\s/g, '');
19388
+ let min, max;
19389
+ // 处理三种格式
19390
+ if (cleanStr.includes(',')) {
19391
+ // 格式:"-2,2"
19392
+ const parts = cleanStr.split(',');
19393
+ if (parts.length !== 2)
19394
+ return '/';
19395
+ min = parseFloat(parts[0]);
19396
+ max = parseFloat(parts[1]);
19397
+ }
19398
+ else if (cleanStr.includes('~')) {
19399
+ // 格式:"-2~2"
19400
+ const parts = cleanStr.split('~');
19401
+ if (parts.length !== 2)
19402
+ return '/';
19403
+ min = parseFloat(parts[0]);
19404
+ max = parseFloat(parts[1]);
19405
+ }
19406
+ else if (cleanStr.includes('±')) {
19407
+ // 格式:"±2"
19408
+ const valueStr = cleanStr.replace('±', '');
19409
+ const value = parseFloat(valueStr);
19410
+ if (isNaN(value))
19411
+ return '/';
19412
+ min = -value;
19413
+ max = value;
19414
+ }
19415
+ else {
19416
+ // 不是三种指定格式之一
19417
+ return '/';
19418
+ }
19419
+ // 检查解析结果是否有效
19420
+ if (isNaN(min) || isNaN(max)) {
19421
+ return '/';
19422
+ }
19423
+ // 判断数字是否在范围内
19424
+ if (num >= min && num <= max) {
19425
+ return '合格';
19426
+ }
19427
+ else {
19428
+ return '不合格';
19429
+ }
19430
+ }
19431
+ catch (error) {
19432
+ // 任何错误都返回"/"
19433
+ return '/';
19434
+ }
19435
+ },
19436
+ },
19437
+ {
19438
+ funName: 'YJTEXTJOIN',
19439
+ funDesc: '此函数将多个区域和/或字符串的文本组合起来,并包括你在要组合的各文本值之间指定的分隔符。',
19440
+ funDefaultVal: null,
19441
+ isAcceptArea: true,
19442
+ funParams: [
19443
+ {
19444
+ name: '需要用作判断的数字数组或字符串数组',
19445
+ repeatable: false,
19446
+ optional: false,
19447
+ },
19448
+ {
19449
+ name: '返回值的数组',
19450
+ repeatable: false,
19451
+ optional: false,
19452
+ },
19453
+ {
19454
+ name: '比较大小或比较相等的字符串,格式为:“>”、“<”、“>=”、“<=”、“=”',
19455
+ repeatable: false,
19456
+ optional: false,
19457
+ },
19458
+ {
19459
+ name: '比较的值,类型为数字类型或字符串类型,如:3或“合格”',
19460
+ repeatable: false,
19461
+ optional: false,
19462
+ },
19463
+ {
19464
+ name: '返回值的分隔符,默认为:,',
19465
+ repeatable: false,
19466
+ optional: false,
19467
+ },
19468
+ ],
19469
+ funCallback: (spread, sheet, retData) => {
19470
+ // //如果传递的参数小于3个,则返回空字符串
19471
+ // if (retData.allCellValsEw.length < 3) {
19472
+ // return '';
19473
+ // }
19474
+ let xData = FormulaUtils.commFun.convertToInt(retData.allCellValsEw[0].filter((item) => FormulaUtils.commFun.isNumber(item))), yData = FormulaUtils.commFun.convertToInt(retData.allCellValsEw[1].filter((item) => FormulaUtils.commFun.isNumber(item))), x = retData.allCellValsEw[2];
19475
+ if (Array.isArray(x) && x.length > 0) {
19476
+ x = Number(x[0]);
19477
+ }
19478
+ else {
19479
+ x = Number(x);
19480
+ }
19481
+ console.log(111, retData);
19482
+ console.log(222, xData);
19483
+ console.log(333, yData);
19484
+ console.log(444, x);
19485
+ return 'OK';
19486
+ },
19487
+ },
19353
19488
  {
19354
19489
  funName: 'YJTREND',
19355
19490
  funDesc: '返回线性回归拟合线的一组纵坐标值(y值)',