Переглянути джерело

Merge branch 'master' of http://smartcost.f3322.net:3000/SmartCost/ConstructionCost

TonyKang 8 роки тому
батько
коміт
c39a8017d0
1 змінених файлів з 87 додано та 0 видалено
  1. 87 0
      web/scripts/sheetDataHelper.js

+ 87 - 0
web/scripts/sheetDataHelper.js

@@ -0,0 +1,87 @@
+/**
+ * Created by Mai on 2017/3/13.
+ */
+// setting示例
+var __settingTemp = {
+    cols: [
+        {
+            id: 'code',
+            head: {
+                titleNames: ['编号'],
+                spanCols:[1],
+                spanRows:[1],
+                vAlign: [1],
+                hAlign: [1],
+                font: '4px Arial'
+            },
+            data:{
+                field: 'code',
+                vAlign: 1,
+                hAlign: 0,
+                font: '4px Arial'
+            },
+            width: 60,
+            readOnly: false
+        }
+    ],
+    headRows: 1,
+    headRowHeight: [25],
+    emptyRows: 3
+};
+
+var SheetDataHelper = {
+    loadSheetHeader: function (setting, sheet) {
+        sheet.setColumnCount(setting.cols.length, GC.Spread.Sheets.SheetArea.viewport);
+        sheet.setRowCount(setting.headRows, GC.Spread.Sheets.SheetArea.colHeader);
+        setting.headRowHeight.forEach(function (rowHeight, index) {
+            sheet.setRowHeight(index, rowHeight, GC.Spread.Sheets.SheetArea.colHeader);
+        })
+        setting.cols.forEach(function (col, index) {
+            var i, iRow = 0, cell;
+            for (i = 0; i < col.head.spanCols.length; i++) {
+                if (col.head.spanCols[i] !== 0) {
+                    cell = sheet.getCell(iRow, index, GC.Spread.Sheets.SheetArea.colHeader);
+                    cell.value(col.head.titleNames[i]).font(col.head.font).hAlign(col.head.hAlign[i]).vAlign(col.head.vAlign[i]);
+                }
+                if (col.head.spanCols[i] > 1 || col.head.spanRows[i] > 1) {
+                    sheet.addSpan(iRow, index, col.head.spanRows[i], col.head.spanCols[i], GC.Spread.Sheets.SheetArea.colHeader);
+                }
+                iRow += col.head.spanRows[i];
+            };
+            sheet.setColumnWidth(index, col.width);
+        });
+    },
+    loadSheetData: function (setting, sheet, datas) {
+        var option = {
+            allowSelectLockedCells: true,
+            allowSelectUnlockedCells: true,
+            allowResizeRows: true,
+            allowResizeColumns: false
+        };
+        var getStyle = function (setting) {
+            var style = new GC.Spread.Sheets.Style();
+            style.locked = setting.readOnly;
+            style.name = setting.id;
+            style.font = setting.data.font;
+            style.hAlign = setting.data.hAlign;
+            style.vAlign = setting.data.vAlign;
+            return style;
+        };
+
+        sheet.options.protectionOptions = option;
+        sheet.options.isProtected = true;
+
+        sheet.setRowCount(datas.length + setting.emptyRows, GC.Spread.Sheets.SheetArea.viewport);
+        setting.cols.forEach(function (colSetting, iCol) {
+            var i, style = getStyle(colSetting);
+            datas.forEach(function (data, iRow) {
+                var cell = sheet.getCell(iRow, iCol, GC.Spread.Sheets.SheetArea.viewport);
+                cell.value(data[colSetting.data.field]);//.font(colSetting.data.font).hAlign(colSetting.data.hAling).vAlign(colSetting.data.vAlign);
+                sheet.setStyle(iRow, iCol, style);
+            });
+            for (i = 0; i < setting.emptyRows; i++) {
+                sheet.setStyle(datas.length + i, iCol, style);
+            }
+        });
+    }
+};