使用python将Excel电子表格作为新工作表附加到多个电子表格

时间:2014-01-21 21:34:41

标签: python excel

我有超过300种独特的“.xlsx”电子表格。我有另一个电子表格(一个解释字段名称的数据字典),我想将它作为一个新的表格(标签)附加到300个独特的电子表格中。

在python中执行此任务是否有相对简单的方法?

1 个答案:

答案 0 :(得分:1)

以下是使用Python-Excel

执行此操作的方法
import xlrd
import xlwt
from xlutils.copy import copy
import os

if not os.path.exists("/new"): os.makedirs("new")

toBeAppended = xlrd.open_workbook("ToBeAppended.xlsx")
sheetToAppend = toBeAppended.sheets()[0]      #If you don't want it to open the first sheet, change the 0 accordingly

dataTuples = []

for row in range(sheetToAppend.nrows):
    for col in range(sheetToAppend.ncols):
        dataTuples.append((row, col, sheetToAppend.cell(row,col).value))  

#You need to change this line!
wbNames = ["{}.xlsx".format(num) for num in range(1,7)]

for name in wbNames:
    wb = copy(xlrd.open_workbook(name))
    newSheet = wb.add_sheet("Appended Sheet")
    for row, col, data in dataTuples:
        newSheet.write(row, col, data)
    wb.save("new/"+name.split('.')[0]+".xls")

因此,这会为您的新工作表创建一个新文件夹(以防它不起作用)。然后它复制第一张“ToBeAppended.xlsx”并收集其中的所有数据。然后它收集它需要更改的文件的名称(对我来说是“1.xlsx”等等)。然后,它会创建需要编辑的每个工作簿的副本,添加工作表,并将所有数据写入其中。最后,它保存文件。

您会注意到它会保存“.xls”文件。这是包的限制,我不知道有什么方法。遗憾

希望这有帮助。