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

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

导入库

import xlrd, xlwt
import 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")
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值