找回密码
 立即注册

QQ登录

只需一步,快速开始

雪峰
注册会员   /  发表于:2021-9-22 09:10  /   查看:1862  /  回复:5
1金币
本帖最后由 Clark.Pan 于 2021-9-22 09:46 编辑

// Data
                        var data = {
                                name: 'Jones', region: 'East',
                                sales: [
                                { orderDate: '1/6/2013', item: 'Pencil', units: 95, cost: 1.99, isMakeMoney: "a" },
                                { orderDate: '4/1/2013', item: 'Binder', units: 60, cost: 4.99, isMakeMoney: "b" },
                                { orderDate: '6/8/2013', item: 'Pen Set', units: 16, cost: 15.99, isMakeMoney: "c" }
                                ]
                        };

                        var convert = function (item) {
                                return item['cost'] + '$';
                        }
                                   
                        // Add table
                        var table = activeSheet.tables.add('tableSales', 0, 0, 4, 4);
                        var tableColumn1 = new GC.Spread.Sheets.Tables.TableColumn(1, "orderDate", "Order Date", "d/M/yy");
                        var tableColumn2 = new GC.Spread.Sheets.Tables.TableColumn(2, "item", "Item");
                        var tableColumn3 = new GC.Spread.Sheets.Tables.TableColumn(3, "units", "Units");
                        var tableColumn4 = new GC.Spread.Sheets.Tables.TableColumn(4, "cost", "Cost", null, null, convert);
                        var tableColumn5 = new GC.Spread.Sheets.Tables.TableColumn(5, "isMakeMoney", "fe IsMakeMoney");  
                        table.autoGenerateColumns(true);
                                       
                        for (var i = 0; i < 5; i++){
                          activeSheet.setColumnWidth(i, 110.0, GC.Spread.Sheets.SheetArea.viewport);
                        }
                        table.expandBoundRows(true);
                        table.bind([tableColumn1, tableColumn2, tableColumn3, tableColumn4, tableColumn5], 'sales', data);
自动扩展的列数据无法填充。

最佳答案

查看完整内容

这个做不到,数据绑定支持的是行动态,列固定的模式,即数据源可以有多行,但是字段是固定的,如果按照你说的所谓的column自动扩展,那等同于重新绑定。

5 个回复

倒序浏览
最佳答案
最佳答案
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-22 09:10:46
来自 4#
这个做不到,数据绑定支持的是行动态,列固定的模式,即数据源可以有多行,但是字段是固定的,如果按照你说的所谓的column自动扩展,那等同于重新绑定。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-22 09:57:36
2#
  1. var data = {
  2.                                 name: 'Jones', region: 'East',
  3.                                 sales: [
  4.                                 { orderDate: '1/6/2013', item: 'Pencil', units: 95, cost: 1.99, isMakeMoney: "a" },
  5.                                 { orderDate: '4/1/2013', item: 'Binder', units: 60, cost: 4.99, isMakeMoney: "b" },
  6.                                 { orderDate: '6/8/2013', item: 'Pen Set', units: 16, cost: 15.99, isMakeMoney: "c" }
  7.                                 ]
  8.                         };

  9.                         var convert = function (item) {
  10.                                 return item['cost'] + '

  11. ;
  12.                         }
  13.                                    
  14.                         // Add table
  15.                         var table = activeSheet.tables.add('tableSales', 0, 0, 4, 4);
  16.                         var tableColumn1 = new GC.Spread.Sheets.Tables.TableColumn(1, "orderDate", "Order Date", "d/M/yy");
  17.                         var tableColumn2 = new GC.Spread.Sheets.Tables.TableColumn(2, "item", "Item");
  18.                         var tableColumn3 = new GC.Spread.Sheets.Tables.TableColumn(3, "units", "Units");
  19.                         var tableColumn4 = new GC.Spread.Sheets.Tables.TableColumn(4, "cost", "Cost", null, null, convert);
  20.                         var tableColumn5 = new GC.Spread.Sheets.Tables.TableColumn(5, "isMakeMoney", "fe IsMakeMoney");  
  21.                         table.autoGenerateColumns(false);
  22.                                        
  23.                         for (var i = 0; i < 5; i++){
  24.                           activeSheet.setColumnWidth(i, 110.0, GC.Spread.Sheets.SheetArea.viewport);
  25.                         }
  26.                         table.expandBoundRows(true);
  27.                         table.bind([tableColumn1, tableColumn2, tableColumn3, tableColumn4, tableColumn5], 'sales', data);
复制代码

table.autoGenerateColumns(true);改为table.autoGenerateColumns(false);
回复 使用道具 举报
雪峰
注册会员   /  发表于:2021-9-22 10:22:22
3#
Clark.Pan 发表于 2021-9-22 09:57
把table.autoGenerateColumns(true);改为table.autoGenerateColumns(false);

如果set table.autoGenerateColumns(false), 数据只有四列,表格总共有四列,我期望有五列数据 , 期望 table能自动根据这个数据的列数自动扩展column并填充数据
回复 使用道具 举报
雪峰
注册会员   /  发表于:2021-9-22 10:52:14
5#
Clark.Pan 发表于 2021-9-22 10:30
这个做不到,数据绑定支持的是行动态,列固定的模式,即数据源可以有多行,但是字段是固定的,如果按照你说 ...

好的,知道了,谢谢
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-22 11:00:37
6#
好的,那就结帖了,有什么问题欢迎另开新帖进行询问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部