|
@@ -78,8 +78,9 @@ var sheetCommonObj = {
|
|
|
var me = this, ch = GC.Spread.Sheets.SheetArea.colHeader;
|
|
|
for (var i = 0; i < setting.header.length; i++) {
|
|
|
sheet.setValue(0, i, setting.header[i].headerName, ch);
|
|
|
- sheet.setColumnWidth(i, setting.header[i].headerWidth?setting.header[i].headerWidth:100);
|
|
|
+ sheet.setColumnWidth(i, setting.header[i].headerWidth ? setting.header[i].headerWidth : 100);
|
|
|
}
|
|
|
+ if(setting.headerHeight) sheet.setRowHeight(0, setting.headerHeight, GC.Spread.Sheets.SheetArea.colHeader);
|
|
|
},
|
|
|
cleanData: function (sheet, setting, rowCount) {
|
|
|
sheet.suspendPaint();
|
|
@@ -118,13 +119,18 @@ var sheetCommonObj = {
|
|
|
area.vAlign(GC.Spread.Sheets.VerticalAlign.center);
|
|
|
}
|
|
|
},
|
|
|
- showData: function(sheet, setting, data) {
|
|
|
+ showData: function(sheet, setting, data,distTypeTree) {
|
|
|
var me = this, ch = GC.Spread.Sheets.SheetArea.viewport;
|
|
|
sheet.suspendPaint();
|
|
|
sheet.suspendEvent();
|
|
|
//sheet.addRows(row, 1);
|
|
|
|
|
|
sheet.clear(0, 0, sheet.getRowCount(), sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport, GC.Spread.Sheets.StorageType.data);
|
|
|
+ if(sheet.getRowCount()<data.length){
|
|
|
+ data.length<30? sheet.setRowCount(30):sheet.setRowCount(data.length);
|
|
|
+ }else if(sheet.getRowCount()==0){
|
|
|
+ sheet.setRowCount(30);
|
|
|
+ }
|
|
|
for (var col = 0; col < setting.header.length; col++) {
|
|
|
var hAlign = "left", vAlign = "center";
|
|
|
if (setting.header[col].hAlign) {
|
|
@@ -135,9 +141,6 @@ var sheetCommonObj = {
|
|
|
vAlign = setting.header[col].vAlign?setting.header[col].vAlign:vAlign;
|
|
|
me.setAreaAlign(sheet.getRange(-1, col, -1, 1), hAlign, vAlign);
|
|
|
if (setting.header[col].formatter) {
|
|
|
- //var style = new GC.Spread.Sheets.Style();
|
|
|
- //style.formatter = setting.header[col].formatter;
|
|
|
- //sheet.setStyle(row,col,style,GC.Spread.Sheets.SheetArea.viewport);
|
|
|
sheet.setFormatter(-1, col, setting.header[col].formatter, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
}
|
|
|
if(setting.header[col].cellType === "checkBox"||setting.header[col].cellType === "button"){//clear and reset
|
|
@@ -147,20 +150,16 @@ var sheetCommonObj = {
|
|
|
sheet.setValue(0, col, setting.header[col].headerName, header);
|
|
|
sheet.setColumnWidth(col, setting.header[col].headerWidth?setting.header[col].headerWidth:100);
|
|
|
}
|
|
|
- for (var row = 0; row < data.length; row++) {
|
|
|
- //var cell = sheet.getCell(row, col, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
- var val = data[row][setting.header[col].dataCode];
|
|
|
- if(val&&setting.header[col].dataType === "Number"){
|
|
|
- if(setting.header[col].hasOwnProperty('tofix')){
|
|
|
- val =parseFloat(val).toFixed(setting.header[col].tofix);
|
|
|
- }else {
|
|
|
- val =parseFloat(val).toFixed(2);
|
|
|
- }
|
|
|
- }
|
|
|
- if(val!=null&&setting.header[col].cellType === "checkBox"){
|
|
|
- this.setCheckBoxCell(row,col,sheet,val)
|
|
|
- }
|
|
|
- sheet.setValue(row, col, val, ch);
|
|
|
+ if(setting.header[col].visible === false){
|
|
|
+ sheet.setColumnVisible(col,false);
|
|
|
+ }
|
|
|
+ sheet.getCell(0, col, GC.Spread.Sheets.SheetArea.colHeader).wordWrap(true);
|
|
|
+ }
|
|
|
+ for (var row = 0; row < data.length; row++) {
|
|
|
+ //var cell = sheet.getCell(row, col, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ this.showRowData(sheet,setting,row,data,distTypeTree);
|
|
|
+ if(setting.getStyle && setting.getStyle(data[row])){
|
|
|
+ sheet.setStyle(row, -1, setting.getStyle(data[row]));
|
|
|
}
|
|
|
}
|
|
|
this.lockCells(sheet,setting);
|
|
@@ -168,6 +167,65 @@ var sheetCommonObj = {
|
|
|
sheet.resumePaint();
|
|
|
//me.shieldAllCells(sheet);
|
|
|
},
|
|
|
+ showRowData:function (sheet,setting,row,data,distTypeTree=null) {
|
|
|
+ let ch = GC.Spread.Sheets.SheetArea.viewport;
|
|
|
+ for (var col = 0; col < setting.header.length; col++) {
|
|
|
+ //var cell = sheet.getCell(row, col, GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ var val = data[row][setting.header[col].dataCode];
|
|
|
+ if(val&&setting.header[col].dataType === "Number"){
|
|
|
+ if(setting.header[col].hasOwnProperty('tofix')){
|
|
|
+ val =scMathUtil.roundToString(val,setting.header[col].tofix);
|
|
|
+ } else {
|
|
|
+ val =val+'';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(val!=null&&setting.header[col].cellType === "checkBox"){
|
|
|
+ this.setCheckBoxCell(row,col,sheet,val)
|
|
|
+ }
|
|
|
+ if(setting.header[col].cellType === "comboBox"){
|
|
|
+ this.setComboBox(row,col,sheet,setting.header[col].options,setting.header[col].editorValueType);
|
|
|
+ }
|
|
|
+ if(setting.header[col].getText){
|
|
|
+ val = setting.getText[setting.header[col].getText](data[row],val)
|
|
|
+ }
|
|
|
+ sheet.setValue(row, col, val, ch);
|
|
|
+ }
|
|
|
+ this.setRowStyle(row,sheet,data[row].bgColour);
|
|
|
+ if(setting.autoFit==true){
|
|
|
+ sheet.getRange(row, -1, 1, -1, GC.Spread.Sheets.SheetArea.viewport).wordWrap(true);
|
|
|
+ sheet.autoFitRow(row);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ setCheckBoxCell(row,col,sheet,val){
|
|
|
+ var c = new GC.Spread.Sheets.CellTypes.CheckBox();
|
|
|
+ c.isThreeState(false);
|
|
|
+ sheet.setCellType(row, col,c,GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ sheet.getCell(row, col).value(val);
|
|
|
+ sheet.getCell(row, col).hAlign(GC.Spread.Sheets.HorizontalAlign.center);
|
|
|
+
|
|
|
+ },
|
|
|
+ setComboBox(row,col,sheet,options,editorValueType){
|
|
|
+ //let combo = new GC.Spread.Sheets.CellTypes.ComboBox();
|
|
|
+ let dynamicCombo = sheetCommonObj.getDynamicCombo(true);
|
|
|
+ if(options){
|
|
|
+ dynamicCombo.itemHeight(options.length).items(options);
|
|
|
+ if(editorValueType==true){
|
|
|
+ dynamicCombo.editorValueType(GC.Spread.Sheets.CellTypes.EditorValueType.value);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sheet.setCellType(row, col,dynamicCombo,GC.Spread.Sheets.SheetArea.viewport);
|
|
|
+ },
|
|
|
+ setRowStyle(row,sheet,bgColour) {
|
|
|
+ if(bgColour){
|
|
|
+ let style = new GC.Spread.Sheets.Style();
|
|
|
+ style.backColor = bgColour;
|
|
|
+ style.borderLeft = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
|
|
|
+ style.borderTop = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
|
|
|
+ style.borderRight = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
|
|
|
+ style.borderBottom = new GC.Spread.Sheets.LineBorder("#D4D4D4", GC.Spread.Sheets.LineStyle.thin);
|
|
|
+ sheet.setStyle(row, -1, style);
|
|
|
+ }
|
|
|
+ },
|
|
|
analyzePasteData: function(setting, pastedInfo) {
|
|
|
var rst = [], propId = pastedInfo.cellRange.col, preStrIdx = 0, itemObj = {};
|
|
|
for (var i = 0; i < pastedInfo.pasteData.text.length; i++) {
|