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)

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

可以使用Python中的pandas库来实现合并同一文件夹下所有excel表格的功能。具体步骤如下: 1. 导入pandas库 ```python import pandas as pd ``` 2. 使用pandas的read_excel函数读取每个excel文件,并将其存储到一个列表中 ```python import os # 获取文件夹中所有的excel文件 folder_path = "path/to/folder" all_files = os.listdir(folder_path) excel_files = [f for f in all_files if f.endswith('.xlsx') or f.endswith('.xls')] # 读取每个excel文件,并将其存储到一个列表中 data_frames = [] for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) data_frames.append(df) ``` 3. 使用pandas的concat函数将所有数据框合并一个 ```python # 使用concat函数将所有数据框合并一个 merged_df = pd.concat(data_frames, ignore_index=True) ``` 4. 将合并后的数据框保存为一个新的excel文件 ```python # 将合并后的数据框保存为一个新的excel文件 merged_df.to_excel("path/to/output_file.xlsx", index=False) ``` 完整代码如下: ```python import pandas as pd import os # 获取文件夹中所有的excel文件 folder_path = "path/to/folder" all_files = os.listdir(folder_path) excel_files = [f for f in all_files if f.endswith('.xlsx') or f.endswith('.xls')] # 读取每个excel文件,并将其存储到一个列表中 data_frames = [] for file in excel_files: file_path = os.path.join(folder_path, file) df = pd.read_excel(file_path) data_frames.append(df) # 使用concat函数将所有数据框合并一个 merged_df = pd.concat(data_frames, ignore_index=True) # 将合并后的数据框保存为一个新的excel文件 merged_df.to_excel("path/to/output_file.xlsx", index=False) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值