![]() 在实际应用中可能会有不同月份的数据或者不同周的报告等等的Excel数据,都是单个独立的文件,如果想要整体使用的话就需要合并一下了,这里提供这样的一个功能,可以把指定目录下的所有Excel数据合并成一个文件。 下面是具体的实践: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:合并同一文件目录下的所有Excel文件 ''' import os import re import sys import xlrd import xlwt reload(sys) sys.setdefaultencoding('utf-8') def readOneExcelData(datapath='testdata.xls'): ''' 读取单个 Excel 中的数据 获取整行和整列的值(返回数组) table.row_values(i) table.col_values(i) ''' workbook=xlrd.open_workbook(datapath,'rb') table=workbook.sheets()[0] row_num,col_num=table.nrows,table.ncols data_list=[] for i in range(1,row_num): data_list.append(table.row_values(i)) return data_list def write2Excel(data_list,savepath='merge_data.xls'): ''' 写到 Excel 中 ''' i=0 workbook=xlwt.Workbook(encoding='utf-8') table=workbook.add_sheet('sheet') for one_list in data_list: for j in range(one_list): table.write(i,j,content[j]) i+=1 workbook.save(savepath) def mergeOneDir(filepath='heze/mudanqu/',savepath='merge_data.xls'): ''' 合并一个文件夹下面的所有 Excel 数据 ''' data_list=[] file_list=os.listdir(filepath) for one_excel in file_list: one_file=filepath+one_excel one_data_list=readOneExcelData(datapath=one_file) if not data_list: data_list=one_data_list else: data_list+=one_data_list[1:] write2Excel(data_list,savepath) if __name__ == '__main__': print 'Input Merge Dir:' one_dir=raw_input() print 'Input save Path:' one_path=raw_input() one_path=one_dir+one_path mergeOneDir(one_dir,one_path) 著作权归作者所有
|
|