rapid-spreadjs 1.0.19 → 1.0.20
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.cjs.js +47 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +48 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/utils/sheet.d.ts +19 -1
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -7311,7 +7311,18 @@ const SheetUtils = {
|
|
|
7311
7311
|
sheet.setSelection(cellObj.row, cellObj.col, cellObj.rowCount, cellObj.colCount);
|
|
7312
7312
|
},
|
|
7313
7313
|
/**
|
|
7314
|
-
*
|
|
7314
|
+
* 获取某工作表中某个范围中所有的单元格坐标对象集合
|
|
7315
|
+
* 该方法适用的场景如:手动选择了某个单元格范围,在这个范围中可能包含独立的单元格,也可能包含合并的单元格,这时候就需要用到如下方法获取到所有单元格对象
|
|
7316
|
+
* @param sheet 工作表实例
|
|
7317
|
+
* @param selectRange 单元格范围,格式如:{ row: 0, col: 0, rowCount: 2, colCount: 2 }
|
|
7318
|
+
* @param isMulColOrder 是否按照多列的顺序排序单元格(true:按照第一列从上到下、第二列从上到下……的顺序获取单元格数据、false:按照第一行从左到右、第二行从左到右……的顺序获取单元格数据)
|
|
7319
|
+
* @returns 返回数组集合,格式如:[{ row: 0, col: 0, rowCount: 1, colCount: 1 }]
|
|
7320
|
+
*/
|
|
7321
|
+
getAllCellObjsByRange: (sheet, selectRange, isMulColOrder = false) => {
|
|
7322
|
+
return SheetUtils.getAllCellObjsByRanges(sheet, [selectRange], isMulColOrder);
|
|
7323
|
+
},
|
|
7324
|
+
/**
|
|
7325
|
+
* 获取某工作表中多个范围集合中所有的单元格坐标对象集合
|
|
7315
7326
|
* 该方法适用的场景如:手动选择了很多个单元格范围,在这些范围中可能包含独立的单元格,也可能包含合并的单元格,这时候就需要用到如下方法获取到所有单元格对象
|
|
7316
7327
|
* @param sheet 工作表实例
|
|
7317
7328
|
* @param selectRanges 单元格范围集合,格式如:[{ row: 0, col: 0, rowCount: 2, colCount: 2 }]
|
|
@@ -7432,6 +7443,41 @@ const SheetUtils = {
|
|
|
7432
7443
|
const sheet = spread.getActiveSheet();
|
|
7433
7444
|
return SheetUtils.getSheetSelectVals(sheet, isMulColOrder, nullUndefinedReplaceVal);
|
|
7434
7445
|
},
|
|
7446
|
+
/**
|
|
7447
|
+
* 获取某工作表指定范围单元格的值集合(二维数组,格式如:[[1,2,3],[4,5,6]])
|
|
7448
|
+
* @param sheet 工作表实例
|
|
7449
|
+
* @param cellRange 单元格范围
|
|
7450
|
+
* @param groupType 分组字段属性(row或col),默认为:row
|
|
7451
|
+
* @param nullUndefinedReplaceVal 如果单元格的值为null或undefined,则将其替换为该值(如果不传入该参数,则不替换)
|
|
7452
|
+
* @returns 返回某工作表指定范围单元格的值集合(二维数组,格式如:[[1,2,3],[4,5,6]])
|
|
7453
|
+
*/
|
|
7454
|
+
getSheetRangeValsByGroup: (sheet, cellRange, groupType = 'row', nullUndefinedReplaceVal) => {
|
|
7455
|
+
// 暂停绘制
|
|
7456
|
+
sheet.suspendPaint();
|
|
7457
|
+
const valCells = SheetUtils.getAllCellObjsByRange(sheet, cellRange);
|
|
7458
|
+
// 按照JSON数组中某个字段进行分组(groupType为row或col)
|
|
7459
|
+
const groupByCells = rapidUtils.groupByJson(valCells, groupType);
|
|
7460
|
+
// 最终返回结果(二维数组)
|
|
7461
|
+
const retVals = [];
|
|
7462
|
+
// 遍历分组JSON对象(groupByCells的格式为:{key1: [cell1, cell2, ...], key2: [cell1, cell2, ...], ...})
|
|
7463
|
+
rapidUtils.forEachJson(groupByCells, (curGroupCells, key, source) => {
|
|
7464
|
+
// 当前按照row或col分组的单元格的值集合
|
|
7465
|
+
const curVals = [];
|
|
7466
|
+
// 遍历当前分组的所有单元格
|
|
7467
|
+
rapidUtils.forEachJson(curGroupCells, (item, index, source) => {
|
|
7468
|
+
let cellVal = sheet.getValue(item.row, item.col);
|
|
7469
|
+
// 如果cellVal为null或undefined,并且nullUndefinedReplaceVal不为null或undefined,则将cellVal替换为nullUndefinedReplaceVal
|
|
7470
|
+
if (nullUndefinedReplaceVal != null && nullUndefinedReplaceVal != undefined && (cellVal === null || cellVal === undefined)) {
|
|
7471
|
+
cellVal = nullUndefinedReplaceVal;
|
|
7472
|
+
}
|
|
7473
|
+
curVals.push(cellVal);
|
|
7474
|
+
});
|
|
7475
|
+
retVals.push(curVals);
|
|
7476
|
+
});
|
|
7477
|
+
// 恢复绘制
|
|
7478
|
+
sheet.resumePaint();
|
|
7479
|
+
return retVals;
|
|
7480
|
+
},
|
|
7435
7481
|
/**
|
|
7436
7482
|
* 获取单元格类型名称
|
|
7437
7483
|
* @param GC GC对象
|