我有超过300种独特的“.xlsx”电子表格。我有另一个电子表格(一个解释字段名称的数据字典),我想将它作为一个新的表格(标签)附加到300个独特的电子表格中。
在python中执行此任务是否有相对简单的方法?
答案 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”文件。这是包的限制,我不知道有什么方法。遗憾
希望这有帮助。