与…一起使用读取xls文件的列表,将其复制到具有多个工作表的单个工作簿中

第一次在这里 我的总体目标是将3个不同的xls文件中的数据准确复制到一个xls工作簿中,并为每个原始xls文件添加一个工作表。 从非程序的意义上说,我想从一个新的工作簿(xls或xlsx文件)中将每个xls文件中的数据复制并粘贴到它自己的工作表中。 我一直在使用xlrd&xlwt来做到这一点,并在search的帮助下,我已经能够获得大部分的代码集。 但是,我很难理解如何使用with … open命令从每个原始xls文件读取数据并将其放在自己的工作表上。 正如你可能从我的代码块学习,我的Python技能是有限的。 谢谢!

import xlwt as xlwt from os.path import join import xlrd wb = xlwt.Workbook() path = r'C:\data_path\\' xls1 = 'file1.xls' xls2 = 'file2.xls' xls3 = 'file3.xls' Sheet1 = 'file1_data' Sheet2 = 'file2_data' Sheet3 = 'file3_data' names = [Sheet1, Sheet2, Sheet3] dataset = [path + xls1, path + xls2, path + xls3] for name in names: wb.add_sheet(name) for n, data in enumerate(dataset): **I feel there should be some type of with..open statement here** ws = wb.get_sheet(n) ws.write(0,0, data) wb.save(join(path,'test.xls')) 

假设每个源文件只有一个工作表:

 import xlwt as xlwt from os.path import join import xlrd output = xlwt.Workbook() path = r'C:\data_path\\' xls1 = 'file1.xls' xls2 = 'file2.xls' xls3 = 'file3.xls' Sheet1 = 'file1_data' Sheet2 = 'file2_data' Sheet3 = 'file3_data' names = [Sheet1, Sheet2, Sheet3] dataset = [path + xls1, path + xls2, path + xls3] for n, data in enumerate(dataset): book = xlrd.open_workbook(data, formatting_info=True) sheet = book.sheet_by_index(0) r = output.add_sheet(names[n]) for row in range(sheet.nrows): for column in range(sheet.ncols): cell_val = sheet.cell_value(rowx=row, colx=column) r.write(row, column, cell_val) output.save(join(path,'test.xls'))