如何将多个excel文件合并成一个

来源:互联网 发布:znds网络电视论坛官网 编辑:程序博客网 时间:2024/05/22 03:01

最近遇到需要将多个xls文件合并到一个新的xls文件内,每个xls文件对应新xls文件的一个sheet。考虑到以后可能会经常用到这个合并操作,故写了一个脚本,解放双手。
具体代码如下:

导入库

import xlrd, xlwtimport os

创建xls写入对象

def create_xls():    """创建xls文档对象"""    wt = xlwt.Workbook()    # table = wt.add_sheet("sheet1", cell_overwrite_ok=True)    return wt

多xls文件合并到新的xls文件

def multi_xls_to_one_xls(path):    """多个xls文件合并到一个xls文件,每个xls文件为一个新sheet"""    sheet_names = {"assettrade":"资金周转率(最近一年)",                   "banktransfer":"银证流入流出",                   "cumulativedaycost":"日成本(最近一年)",                   "cumulativeyyield":"累计收益率(近一年收益率)",                   "hisdeliver":"每日买入证券总额(资金账户)",                   "stockdayprofit":"股票日盈亏额(资金账户)",                   "yearyield":"年收益率"}    os.chdir("/")    os.chdir(path)  #进入xls文件读取目录    wt = create_xls()   # 创建文件xlwt写入对象    target_list = ['demo1.xls', 'demo2.xls']    #目标文件    for each in os.listdir("."):        if each in target_list:            rd = xlrd.open_workbook(each)   #打开目标文件            table_rd = rd.sheet_by_name(rd.sheet_names()[0])    #选择目标文件的第一个sheet(若目标目录只有一个文件)            table_wt = wt.add_sheet(each)   #以文件名作为sheet名创建新的sheet            # table_rd.nrows 获取行书, table_rd.ncols 获取列数            for i in range(table_rd.nrows):                for j in range(table_rd.ncols):                    table_wt.write(i,j, table_rd.cell(i,j).value)   #读取目标文件的数据并写入    wt.save("demo3.xls")    #保存

调用

if __name__ == "__main__":    multi_xls_to_one_xls(r"C:\Users\Administrator\Desktop\xxxx\scripts")
阅读全文
0 0