我想将我的数据从python传输到各种工作表中的excel文件。所以我需要更改工作表的名称以选择要写入的正确工作表。我已经编写了这段代码,但它不接受我在ws = wb.add_sheet("Patch Size %s",%(wo))
行中为我的工作表提供替代名称。
patch = [3, 5, 7, 9, 11, 13, 15, 17, 19, 25, 37, 49, 55, 60, 70, 80]
DATA = (("x", 1,),
("x",1),
("x",1),
("x",1 ),
("x",1 ),
("x",1 ),
("x",1 ),
("x",1 ),
("x",1 ),
("x", 1),
("x",1 ),
("x",1 ),
("x",1 ),
("x",1 ),
("x", 1),
("x",1),)
whch = 25
wb = xlwt.Workbook()
w0 = 0
while whch != patch[w0]:
w0 = w0+1
ws = wb.add_sheet("Patch Size %s",%(wo))
for i, row in enumerate(DATA):
for j ,col in enumerate(row):
if j == 0:
ws.write(i, j, col)
elif j == 1:
ws.write(i, which+j, col)
ws.col(0).width = 456 * max([len(row[0]) for row in DATA])
你知道我怎么做吗?
感谢。
答案 0 :(得分:1)
您的代码中存在相当多的错误。试试这个:
whch = 25
wb = xlwt.Workbook()
w0 = 0
while whch != patch[w0]:
w0 = w0+1
ws = wb.add_sheet("Patch Size %s" %(w0)) # no comma needed, changed wo to w0
for i, row in enumerate(DATA):
for j ,col in enumerate(row):
if j == 0:
ws.write(i, j, col)
elif j == 1:
ws.write(i, whch+j, col) # replaced which with whch
ws.col(0).width = 456 * max([len(row[0]) for row in DATA])
我通过制作看似最合理的替代品(例如which
- > whch
)来修复错误,假设它们是拼写错误,但您可能需要仔细检查以上是否仍然存在错误做你打算做的事。
答案 1 :(得分:1)
好像您的工作表名称字符串格式错误(您的逗号错误),而不是来自xlwt:
ws = wb.add_sheet("Patch Size %s",%(wo))
应该是
ws = wb.add_sheet("Patch Size %s"%(wo))
或
ws = wb.add_sheet("Patch Size {0}".format(wo))
希望这有帮助。