本帖最后由 Richard.Huang 于 2024-4-3 16:39 编辑
产品:SpreadJS
我在表格设计器中设置了一个table,合并了一些单元格,根据rang获取表格数据,会带出来合并的单元格的值,包括表头的,下面是我获取数据的方法:
有什么办法能获取合并后的数据,不受多余的影响?
- getTable(){
- const spread = this.designer.getWorkbook();
- const activeSheet = spread.getActiveSheet();
- let table = activeSheet.tables.findByName("Table2");
- // 定义一个数组来存放最终的数据
- let tableData = [];
- // // 获取表格的列数
- // let colCount = table.range().colCount;
- // // 获取表格的行数
- // let rowCount = table.range().rowCount - 1; // 减去1是因为表头不算在内
- // console.log("列数:", colCount, "行数:", rowCount);
- if (table) {
- // 获取表格的范围
- let tableRange = table.range();
- // 遍历表格的每一行
- for (
- // + 1
- let row = tableRange.row;
- row < tableRange.row + tableRange.rowCount;
- row++
- ) {
- // 定义一个数组来存放当前行的数据
- let rowData = [];
- // 遍历当前行的每一列
- for (
- let col = tableRange.col;
- col < tableRange.col + tableRange.colCount;
- col++
- ) {
- // 获取单元格的值
- let value = activeSheet.getValue(row, col);
- // 将当前单元格的数据存放到当前行的数据数组中
- // 列的索引从1开始,因此使用 col - tableRange.col + 1 作为键
- rowData.push({ [col - tableRange.col + 1]: value });
- }
- // 将当前行的数据数组添加到最终的数据数组中
- tableData.push(rowData);
- }
- }
- console.log(tableData);
- return tableData;
- }
复制代码
|
|