Python周期不起作用(XLWT)



我在python中有这个代码,应该可以正常工作。

python
import xlwt 
#== change variables according to requirements ==#
numoftopcol = 5
numoftestcases = 4
coltext = ['Test Case', 'Test Name', 'Duration', 'Factual Result', 'Result (Pass/Fail)']
testN = ['void','Get Counter Result', 'Read Stats', 'Client Initialization', 'Start Server']
#== change variables according to requirements ==#
styleH = xlwt.easyxf('font: name Arial, bold on, color-index blue;')
styleH.font.height = 400
stylee = xlwt.easyxf('font: name Arial')
wb = xlwt.Workbook()
ws = wb.add_sheet('Test Case Overview')
c = 0
numoftopcol += 1
for c in range(c,numoftopcol):
     ws.write(0, c, coltext[c], styleH),
     ws.col(c).width = 7000

import random
c = 1
numoftestcases += 1
for c in range(c,numoftestcases):
     strC = str(c),
     ws.write(c,0,'TC-'+strC,stylee),
     ws.write(c,1,testN[c],stylee),
     ws.write(c,2,'DUR',stylee),
     ws.write(c,3,'RandomStr',stylee),
     randomint = random.randint(0,1),
     if randomint == 0:
          ws.write(c,4,'PASS',stylee)
     else:
          ws.write(c,4,'FAIL',stylee)

现在,第一个周期正常工作(带有styleh的周期)。第二个不起作用(stylee)。调试我发现C = 1和NumoftestCases = 5。因此,如果C<numoftestcase或1< 5,那么周期应该有效,对吗?

显然没有。我在CMD中获得以下错误输出(对于第二个周期)。

fortraceback(最近的最新电话): 文件",第2行,在 indexError:列表索引超出范围

追溯(最近的最新通话): 文件",第3行,在 TypeError:无法连接'str'和``元组''对象

这有什么问题?我记得这很早以前起作用了。我没有更改循环代码,但现在它不起作用。

我还尝试在第二个周期中的第一行中放置打印(c),而输出只有1个。

没有更多的数字。

检查XLS文件,只有第一个周期写在电子表格中。

我将此代码存储在文本文件上,这样我就可以在CMD中需要记住此命令。

首先:索引超出范围:您定义 numoftopcol至5,即列表的len,但是在循环之前,您会增加它...现在访问此索引从范围...

错误的根本原因是Excel坐标从1开始,但Python列表为0索引。我会从0n进行循环,并仅添加1个用于xlwt调用,而不是执行您正在执行的所有+1工作。

第二:串联错误:您没有发布任何stacktrace,但

strC = str(c),

创建tuple。下一行:

 ws.write(c,0,'TC-'+strC,stylee),

尝试将str添加到tuple

我发现了什么问题。我必须将cnumoftestcases的数据类型转换为int。

int(c)
int(numoftestcases)

案例解决了。它现在正在工作。

最新更新