python合并多个excel文件xls,xlsx格式

利用pandas模块和glob,之前用xlrd做过,代码很长而且只能读取xls格式,学习pandas后进行了优化,代码简短而且可以xls与xlsx一起合并

简单版本代码如下

import  pandas as pd
import glob

filelocation = 'D:\\file\\'   #文件夹位置
li=[]

# 读取文件夹下所有文件(xls和xlsx都读取)
for i in glob.glob(filelocation+"*.*"):
    li.append(pd.read_excel(i))

# 合并后的excel文件位置
filedestination="D:\\Documents and Settings\\"

numbers = len(li)    
names = 'test' 
writer = pd.ExcelWriter(filedestination+names+".xlsx")
pd.concat(li).to_excel(writer,'Sheet1',index=False)

print('\n%d个文件已经合并成功!'% numbers)
writer.save()

以下为带input的代码

import  pandas as pd
import glob

#用户输入表格所在文件夹位置
filelocation = input('请输入文件夹位置(将 \ 改为 \\\\,末尾加\\\\):')  

# 读取文件夹下所有文件(xls和xlsx都读取)
li=[]
for i in glob.glob(filelocation+"*.*"):
    li.append(pd.read_excel(i))
    
# 输入 合并后的表格存放的位置  (默认桌面)
saveFile = input('\n合并后的文件是否存在桌面(y/n)?') 
if saveFile == 'y':
     filedestination="D:\\Documents and Settings\\Administrator\\桌面\\"
else:
     filedestination = input('\n请输入合并后的文件保存位置(将 \ 改为 \\\\,末尾加\\\\):')

numbers = len(li)    
names = input('\n请输入合并后的文件名称:')

writer = pd.ExcelWriter(filedestination+names+".xlsx")
pd.concat(li).to_excel(writer,'Sheet1',index=False)

print('\n%d个文件已经合并成功!'% numbers)
writer.save()
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
实现多个Excel文件合并的方法主要有两种,一种是使用Python的pandas库,另一种是使用xlrd和xlwt库。 下面分别介绍这两种方法的实现步骤: 1. 使用pandas库 首先需要安装pandas库,可以使用pip install pandas命令进行安装。 合并Excel文件的步骤如下: ① 导入pandas库和os库 ```python import pandas as pd import os ``` ② 定义一个函数,用于将多个Excel文件合并为一个DataFrame对象 ```python def merge_excels(path): result = pd.DataFrame() for root, dirs, files in os.walk(path): for file in files: if file.endswith('.xlsx'): # 只处理xlsx文件 file_path = os.path.join(root, file) df = pd.read_excel(file_path) result = result.append(df) return result ``` ③ 调用merge_excels函数,将多个Excel文件合并为一个DataFrame对象,并将结果保存到一个新的Excel文件中 ```python path = '/path/to/excels' result = merge_excels(path) result.to_excel('merged.xlsx', index=False) ``` 2. 使用xlrd和xlwt库 需要先安装xlrd和xlwt库,可以使用pip install xlrd xlwt命令进行安装。 合并Excel文件的步骤如下: ① 导入xlrd和xlwt库 ```python import xlrd import xlwt import os ``` ② 定义一个函数,用于将多个Excel文件合并为一个新的Excel文件 ```python def merge_excels(path): wb = xlwt.Workbook(encoding='utf-8') ws = wb.add_sheet('merged') row_num = 0 for root, dirs, files in os.walk(path): for file in files: if file.endswith('.xlsx'): # 只处理xlsx文件 file_path = os.path.join(root, file) workbook = xlrd.open_workbook(file_path) sheet = workbook.sheet_by_index(0) if row_num == 0: # 第一次循环需要写入表头 for i in range(sheet.ncols): ws.write(row_num, i, sheet.cell_value(0, i)) row_num += 1 for j in range(1, sheet.nrows): # 从第二行开始写入数据 for k in range(sheet.ncols): ws.write(row_num, k, sheet.cell_value(j, k)) row_num += 1 return wb ``` ③ 调用merge_excels函数,将多个Excel文件合并为一个新的Excel文件,并保存到本地 ```python path = '/path/to/excels' wb = merge_excels(path) wb.save('merged.xls') ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值