在不同的Excel工作表Python中显示错误的结果
Posted
技术标签:
【中文标题】在不同的Excel工作表Python中显示错误的结果【英文标题】:Display wrong Result in different Excel sheet Python 【发布时间】:2016-12-28 14:10:29 【问题描述】:我希望有 1 个可以在不同 Excel 工作表中显示结果的 python 文件,现在我可以列出 3 个带有 3 个工作表的选项卡,但是在第二张工作表上的 for/if 循环显示空结果。我能够在第一张纸上得到正确的结果,但在第二张纸上却没有。
for module in data:
#Go to first sheet
str1 = ''.join(module)
if len(module)<102:
pass
else:
worksheet1.write_row(row, col, module)
row += 1
if str1.isupper():
pass
else:
worksheet1.write_row(row, col, module)
row += 1
#Go to second sheet
#Show empty result in second sheet
MY_MODULE=module[0].split('_') #Module Name
if 1<len(MY_MODULE)<4: #Field Number in Module Name
pass
else:
worksheet2.write_row(row, col, MY_MODULE)
row += 1
if len(MY_MODULE[0])==3: #Length in Scrum Field
pass
else:
worksheet2.write_row(row, col, MY_MODULE)
row += 1
if MY_MODULE[0]in ('TPI','SCN','ARR','FUN','MIO','CLK','HTD','SIO','PTH'): #Name in Scrum Field
pass
else:
worksheet2.write_row(row, col, MY_MODULE)
row += 1
if 2<len(MY_MODULE[1])<9: #Length in Module Name Field
pass
else:
worksheet2.write_row(row, col, MY_MODULE)
row += 1
【问题讨论】:
【参考方案1】:if len(MY_MODULE[0])==3: #Length in Scrum Field
pass
else:
worksheet2.write_row(row, col, MY_MODULE)
row += 1
if MY_MODULE[0]in ('TPI','SCN','ARR','FUN','MIO','CLK','HTD','SIO','PTH'): #Name in Scrum Field
pass
else:
worksheet2.write_row(row, col, MY_MODULE)
row += 1
这里有两个 if 条件实际上是相同的。因为在所有给定输入字符串的最后一个 if 条件长度是 3。所以你得到了两个相同的 if 条件,你在 else 条件下打印了两次相同的结果。
【讨论】:
以上是关于在不同的Excel工作表Python中显示错误的结果的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中合并多个具有不同表格列的 Excel 工作表?