在 Python 中使用 xlrd 和 xlwt 编写/创建工作表

我正在尝试读取具有多个工作表的多个 excel 文件(所有 excel 文件中的工作表名称都相同)并在每个工作表中执行一些计算并将与工作表对应的所有 excel 文件中的计算数据保存到一个新的工作簿。我执行此操作的小片段如下:

import xlrd
import xlwt
import os

wb2 = xlwt.Workbook()
wb2_name = 'AllSummary.xls'
pwd = os.getcwd()

for i in xrange(len(ListofExcelFiles)):
    fname = pwd + os.sep + ListofExcelFiles[i]
    wb1 = xlrd.open_workbook(fname)
    sheetNames = wb1.sheet_names()

    for j in xrange(len(sheetNames)):

        sheet = wb1.sheet_by_name(sheetNames[j])

        #<Read the Excel Data from Worksheet>
        #<Perform Calculation on Data Here>

        #<Create a new worksheet in wb2>
        sheet_all = wb2.add_sheet(sheetNames[j])

        #<Write the data to the worksheet>

wb2.save(wb2_name)
print "Output Excel File Saved!"

我知道 i 的第一次迭代会创建一个新工作表;在下一次迭代中被复制。有人可以阐明如何克服这种重复错误吗?任何帮助都感激不尽。

谢谢!

stack overflow Writing/Creating a worksheet using xlrd and xlwt in Python
原文答案

答案:

作者头像

您可以简单地添加一个 if 语句,如下所示:

if sheetNames[j] in wb2.sheet_names():
    sheet_all = wb2.sheet_by_name(sheetNames[j])

else
    sheet_all = wb2.add_sheet(sheetNames[j])

# Save your calculations' results in "sheet_all"

相关问题