|
@@ -136,6 +136,10 @@ const SpreadJsObj = {
|
|
|
let selections = sheet.getSelections();
|
|
|
});
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 根据sheet.zh_setting初始化sheet表头
|
|
|
+ * @param {GC.Spread.Sheets.Worksheet} sheet
|
|
|
+ */
|
|
|
initSheetHeader: function (sheet) {
|
|
|
if (!sheet.zh_setting) { return; }
|
|
|
|
|
@@ -154,11 +158,20 @@ const SpreadJsObj = {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 初始化sheet, 设置sheet.zh_setting, 并初始化表头
|
|
|
+ * @param {GC.Spread.Sheets.Worksheet} sheet
|
|
|
+ * @param setting
|
|
|
+ */
|
|
|
initSheet: function (sheet, setting) {
|
|
|
sheet.zh_setting = setting;
|
|
|
this.initSheetHeader(sheet);
|
|
|
sheet.extendCellType = {};
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 整个sheet重新加载数据
|
|
|
+ * @param sheet
|
|
|
+ */
|
|
|
reLoadSheetData: function (sheet) {
|
|
|
this.protectedSheet(sheet);
|
|
|
this.massOperationSheet(sheet, function () {
|
|
@@ -170,47 +183,76 @@ const SpreadJsObj = {
|
|
|
const emptyRows = sheet.getRange(sortData.length, -1, sheet.zh_setting.emptyRows, -1);
|
|
|
emptyRows.locked(sheet.zh_dataType === 'tree');
|
|
|
// 单元格写入数据
|
|
|
- for (const i in sortData) {
|
|
|
- const data = sortData[i];
|
|
|
- for (const j in sheet.zh_setting.cols) {
|
|
|
- const col = sheet.zh_setting.cols[j];
|
|
|
- const cell = sheet.getCell(i, j, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ sortData.forEach(function (data, i) {
|
|
|
+ sheet.zh_setting.cols.forEach(function (col, j) {
|
|
|
+ const cell = sheet.getCell(i, j);
|
|
|
if (col.field !== '' && data[col.field]) {
|
|
|
cell.value(data[col.field]);
|
|
|
- console.log('row: ' + i + ' col: ' + j + ' value: ' + cell.value());
|
|
|
}
|
|
|
+ })
|
|
|
+ });
|
|
|
+ // 设置列单元格格式
|
|
|
+ sheet.zh_setting.cols.forEach(function (col, j) {
|
|
|
+ if (!col.cellType) { return; }
|
|
|
+
|
|
|
+ if (col.cellType === 'tree') {
|
|
|
+ if (!sheet.extendCellType.tree) {
|
|
|
+ sheet.extendCellType.tree = SpreadJsExtendCellType.getTreeNodeCellType();
|
|
|
+ }
|
|
|
+ sheet.getRange(-1, j, -1, 1).cellType(sheet.extendCellType.tree);
|
|
|
+ } else if (col.cellType === 'tip') {
|
|
|
+ if (!sheet.extendCellType.tip) {
|
|
|
+ sheet.extendCellType.tip = SpreadJsExtendCellType.getTipCellType();
|
|
|
+ }
|
|
|
+ sheet.getRange(-1, j, -1, 1).cellType(sheet.extendCellType.tip);
|
|
|
}
|
|
|
- }
|
|
|
- /*sortData.forEach(function (data, i) {
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 重新加载部分数据行
|
|
|
+ * @param sheet
|
|
|
+ * @param {Number} row
|
|
|
+ * @param {Number} count
|
|
|
+ */
|
|
|
+ reLoadRowData: function (sheet, row, count) {
|
|
|
+ this.massOperationSheet(sheet, function () {
|
|
|
+ const sortData = sheet.zh_dataType === 'tree' ? sheet.zh_tree.nodes : sheet.zh_data;
|
|
|
+ // 单元格重新写入数据
|
|
|
+ for (let i = row; i < row + count; i++) {
|
|
|
+ const data = sortData[i];
|
|
|
+ console.log(data);
|
|
|
sheet.zh_setting.cols.forEach(function (col, j) {
|
|
|
const cell = sheet.getCell(i, j);
|
|
|
if (col.field !== '' && data[col.field]) {
|
|
|
cell.value(data[col.field]);
|
|
|
}
|
|
|
- })
|
|
|
- });*/
|
|
|
- console.log(sheet.getCell(5, 0).value());
|
|
|
- console.log(sheet.getCell(6, 0).value());
|
|
|
- console.log(sortData);
|
|
|
+ });
|
|
|
+ };
|
|
|
// 设置列单元格格式
|
|
|
- for (const j in sheet.zh_setting.cols) {
|
|
|
- const col = sheet.zh_setting.cols[j];
|
|
|
- if (!col.cellType) { continue; }
|
|
|
+ sheet.zh_setting.cols.forEach(function (col, j) {
|
|
|
+ if (!col.cellType) { return; }
|
|
|
|
|
|
if (col.cellType === 'tree') {
|
|
|
if (!sheet.extendCellType.tree) {
|
|
|
sheet.extendCellType.tree = SpreadJsExtendCellType.getTreeNodeCellType();
|
|
|
}
|
|
|
- sheet.getRange(-1, j, -1, 1).cellType(sheet.extendCellType.tree);
|
|
|
+ sheet.getRange(row, j, count, 1).cellType(sheet.extendCellType.tree);
|
|
|
} else if (col.cellType === 'tip') {
|
|
|
if (!sheet.extendCellType.tip) {
|
|
|
sheet.extendCellType.tip = SpreadJsExtendCellType.getTipCellType();
|
|
|
}
|
|
|
- sheet.getRange(-1, j, -1, 1).cellType(sheet.extendCellType.tip);
|
|
|
+ sheet.getRange(row, j, count, 1).cellType(sheet.extendCellType.tip);
|
|
|
}
|
|
|
- }
|
|
|
+ });
|
|
|
});
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 根据data加载sheet数据,合并了一般数据和树结构数据的加载
|
|
|
+ * @param {GC.Spread.Sheets.Worksheet} sheet
|
|
|
+ * @param {String} dataType - 1.'zh_data' 2.'zh_tree'
|
|
|
+ * @param {Array|PathTree} data - 对dataType对应
|
|
|
+ */
|
|
|
loadSheetData: function (sheet, dataType, data){
|
|
|
sheet.zh_dataType = dataType;
|
|
|
if (dataType === 'tree') {
|