python实现同一目录文件下所有Excel数据文件的合并

      在实际应用中可能会有不同月份的数据或者不同周的报告等等的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)

        使用一下还是能省点事的!

猜你喜欢

转载自blog.csdn.net/Together_CZ/article/details/82429971
今日推荐