sheet.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * Created by CSL on 2017-05-19.
  3. * 通用的SpreadSheet创建显示接口,应用数据源绑定列、脏数据等。
  4. * var colDef = [{name: "coeType", displayName: "类型", size: 100, hAlign: "center"},..,{} ];
  5. * var datas = [{},..,{}];
  6. */
  7. sheetObj = {
  8. spread: null,
  9. create: function (container, colDef, datas){
  10. var me = this;
  11. me.spread = new GC.Spread.Sheets.Workbook(container, {sheetCount:1});
  12. me.spread.suspendPaint();
  13. me.spread.options.tabStripVisible = false;
  14. me.spread.options.showHorizontalScrollbar = false;
  15. var sheet = me.spread.getSheet(0);
  16. var sheetArea = GC.Spread.Sheets.SheetArea;
  17. sheet.setRowCount(20, sheetArea.viewport);
  18. sheet.setRowHeight(0, 30, sheetArea.colHeader);
  19. sheet.autoGenerateColumns = false;
  20. sheet.setDataSource(datas);
  21. sheet.bindColumns(colDef);
  22. me.setColAlign(colDef);
  23. me.setRowHeight(datas, 25);
  24. me.spread.resumePaint();
  25. return me.spread;
  26. },
  27. setColAlign: function(colDef){
  28. var me = this;
  29. var sheet = me.spread.getSheet(0);
  30. for (var col = 0; col < colDef.length; col++) {
  31. var ha = colDef[col].hAlign;
  32. var va = colDef[col].vAlign;
  33. var area = sheet.getRange(-1, col, -1, GC.Spread.Sheets.SheetArea.viewport);
  34. if (ha === "right") {
  35. area.hAlign(GC.Spread.Sheets.HorizontalAlign.right);
  36. } else if (ha === "center") {
  37. area.hAlign(GC.Spread.Sheets.HorizontalAlign.center);
  38. } else {
  39. area.hAlign(GC.Spread.Sheets.HorizontalAlign.left);
  40. };
  41. if (va === "top") {
  42. area.vAlign(GC.Spread.Sheets.VerticalAlign.top);
  43. } else if (va === "bottom") {
  44. area.vAlign(GC.Spread.Sheets.VerticalAlign.bottom);
  45. } else {
  46. area.vAlign(GC.Spread.Sheets.VerticalAlign.center);
  47. };
  48. };
  49. },
  50. setRowHeight: function(datas, hValue){
  51. var me = this;
  52. var sheet = me.spread.getSheet(0);
  53. for (var row = 0; row < datas.length; row++) {
  54. sheet.setRowHeight(row, hValue, GC.Spread.Sheets.SheetArea.viewport);
  55. }
  56. }
  57. };