sheet_creater.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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.addRows(sheet.getRowCount(), 1); // 扩展1行,用于直接输入以新增记录。
  22. sheet.bindColumns(colDef);
  23. me.setColAlign(colDef);
  24. me.setRowHeight(datas, 25);
  25. me.spread.resumePaint();
  26. return me.spread;
  27. },
  28. setColAlign: function(colDef){
  29. var me = this;
  30. var sheet = me.spread.getSheet(0);
  31. for (var col = 0; col < colDef.length; col++) {
  32. var ha = colDef[col].hAlign;
  33. var va = colDef[col].vAlign;
  34. var area = sheet.getRange(-1, col, -1, GC.Spread.Sheets.SheetArea.viewport);
  35. if (ha === "right") {
  36. area.hAlign(GC.Spread.Sheets.HorizontalAlign.right);
  37. } else if (ha === "center") {
  38. area.hAlign(GC.Spread.Sheets.HorizontalAlign.center);
  39. } else {
  40. area.hAlign(GC.Spread.Sheets.HorizontalAlign.left);
  41. };
  42. if (va === "top") {
  43. area.vAlign(GC.Spread.Sheets.VerticalAlign.top);
  44. } else if (va === "bottom") {
  45. area.vAlign(GC.Spread.Sheets.VerticalAlign.bottom);
  46. } else {
  47. area.vAlign(GC.Spread.Sheets.VerticalAlign.center);
  48. };
  49. };
  50. },
  51. setRowHeight: function(datas, hValue){
  52. var me = this;
  53. var sheet = me.spread.getSheet(0);
  54. for (var row = 0; row < datas.length; row++) {
  55. sheet.setRowHeight(row, hValue, GC.Spread.Sheets.SheetArea.viewport);
  56. }
  57. }
  58. };