python 汇总多个excel文件的特定列到同一新文件多个表
#编程小白的初尝试#
尝试将多个excel 文件中的特定列汇总,例如多个文件的A列汇总到同一个表格中,这种单纯复制粘贴的事情就交给代码吧。
例如有12个文件,每个文件的格式相同,如下,都共有16列数据,其中A列我是不需要的,故从B列开始。
代码如下
import numpy as np
import xlrd
import xlwt
import time
time_start=time.time()
#创建一个Workbook对象,相当于创建了一个Excel文件
book=xlwt.Workbook(encoding="utf-8",style_compression=0)
for b in range(1,16,1): #b为读取的列数,从B列开始
# 创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。
sheetb = book.add_sheet('sheet'+str(b)+'', cell_overwrite_ok=True)
for a in range(1,13,1): #读取文件
rawdatabook = xlrd.open_workbook(r'd:\\data\\wenjian'+str(a)+'.xls')
# 获取所有sheet
sheet_name = rawdatabook.sheet_names()[0]
# 根据sheet索引或者名称获取sheet内容
sheet = rawdatabook.sheet_by_index(0) # sheet索引从0开始
# sheet的名称,行数,列数
print (sheet.name,sheet.nrows,sheet.ncols)
for i in range(1,sheet.nrows,1):
data = sheet.col_values(b)[0:] #读取数据
sheetb.write(i,a,data[i]) #写入数据
print(b) #每复制完一列显示一次
book.save('d:\11.xls') #保存文件
time_end=time.time()
print('totally cost',time_end-time_start) #运行时间
print("全部搞掂~!")
最后效果如图,之前的每一特定列都分别汇总到独立的sheet中。
12个文件,每个文件15列数据,最后总用时在一个小时左右。总体还是比手动快,不知道是不是还有更加简便快捷的处理方式,希望各位大神多多指教~!
PS:编程小白的单纯分享,不喜勿喷~!(狗头保命)
碰巧今天是老贝的生日,祝红魔永远的7号生日快乐~!(附图一张)