如何动态创建 table

How to create table dynamically

我想根据用户输入的值创建 table。

每个 table 最多有 7 列,第一列作为行名。当用户输入 9 个值而不是 7 个时,它应该创建下一个 table 两列。然后对于那些 table 我稍后会通过一些计算在程序中给出价值。

我试过这段代码但出现错误

vr={}
num=0
    for num in range(1,k):
        print site_count
        print 'num is',num

vr[str(num)]=document.add_table(rows=13, cols=(7))
print vr['1']

for num in range(1,k+1):
    vr['num'].cell(1, 0).text='Subscribed BW'
    vr['num'].cell(2, 0).text='Peak LAN'
    vr['num'].cell(3, 0).text='Peak WAN-IN'
    vr['num'].cell(4, 0).text='Peak WAN-OUT'
    vr['num'].cell(5, 0).text='Recommended BW Capacity'
    vr['num'].cell(7, 0).text='Peak Compression'
    vr['num'].cell(9, 0).text='Optimized Traffic'
    vr['num'].cell(10, 0).text='Optimized Traffic%'
    vr['num'].cell(12, 0).text='Key Applications'
    vr['num'].style ='TableGrid'

错误为: vr['num'].cell(1, 0).text='Subscribed BW' 键错误:'num'

有没有其他解决办法

关键字 'num' 在您的字典中不存在。

vr[str(num)] = document.add_table(rows=13, cols=(7))

这里num是整数k。看起来您想将赋值放在第一个循环中。

在第二个循环中,您尝试分配给

vr['num']

尝试:

vr[str(num)]

请注意,对于编号索引,您最好使用 listarray

首先要做的是删除 vr['num']num 周围的引号,因为字符串 "num" 不是字典 vr 中的键,你应该使用 num:

的字符串值
for num in range(1,k+1):
    vr[str(num)].cell(1, 0).text='Subscribed BW'
    vr[str('num')].cell(2, 0).text='Peak LAN'
    ...

但是,由于您仅将 num 用作字典的键,因此将其转换为字符串没有任何意义 - 您可以将其用作整数。

for num in range(1,k+1):
    vr[num].cell(1, 0).text='Subscribed BW'
    vr[num].cell(2, 0).text='Peak LAN'
    ...

不要不必要的str(),试试下面的代码

vr = {}
num = 0
vr[num]=document.add_table(rows=13, cols=(7))
print vr['1']

for num in range(1,k+1):
    vr[num].cell(1, 0).text='Subscribed BW'
    vr[num].cell(2, 0).text='Peak LAN'
    vr[num].cell(3, 0).text='Peak WAN-IN'
    vr[num].cell(4, 0).text='Peak WAN-OUT'
    vr[num].cell(5, 0).text='Recommended BW Capacity'
    vr[num].cell(7, 0).text='Peak Compression'
    vr[num].cell(9, 0).text='Optimized Traffic'
    vr[num].cell(10, 0).text='Optimized Traffic%'
    vr[num].cell(12, 0).text='Key Applications'
    vr[num].style ='TableGrid'