在不同的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文件

如何在 Python 中合并多个具有不同表格列的 Excel 工作表?

excel跨表格引用遇到的两个问题?

SSIS包没有填充任何结果

将不同文件中的多个excel表导入python并将它们连接到一个数据框中

Excel表格引用另外一个表的数据,被引用表格不打开,引用表格上就不会显示数据,显示VALUE,急