python合并多个excel表到一张表中(有表头)

python合并多个excel表到一张表中:需要合并的表格每个表头相同

代码:

————————————————————————

# 下面这些变量需要您根据自己的具体情况选择
biaotou = ['学号', '姓名', '年龄','年级', '性别',' 联系电话','备注']
# 在哪里搜索多个表格
filelocation = "D:\\Python\\Documents\\"
# 当前文件夹下搜索的文件名后缀
fileform = "xls"
# 将合并后的表格存放到的位置
filedestination = "D:\\Python\\Documents\\"
# 合并后的表格命名为file
file = "test"

# 首先查找默认文件夹下有多少文档需要整合
import glob
from numpy import *

filearray = []
for filename in glob.glob(filelocation + "*." + fileform):
    filearray.append(filename)
    # 以上是从Documents文件夹下读取所有excel表格,并将所有的名字存储到列表filearray
print("在默认文件夹下有%d个文档哦" % len(filearray))
ge = len(filearray)
matrix = [None] * ge
# 实现读写数据

# 下面是将所有文件读数据到三维列表cell[][][]中(不包含表头)
import xlrd

for i in range(ge):
    fname = filearray[i]
    bk = xlrd.open_workbook(fname)
    try:
        sh = bk.sheet_by_name("Sheet1")
    except:
        print("在文件%s中没有找到sheet1,读取文件数据失败,要不你换换表格的名字?" % fname)
    nrows = sh.nrows
    matrix[i] = [0] * (nrows - 1)

    ncols = sh.ncols
    for m in range(nrows - 1):
        matrix[i][m] = ["0"] * ncols

    for j in range(1, nrows):
        for k in range(0, ncols):
            matrix[i][j - 1][k] = sh.cell(j, k).value
            # 下面是写数据到新的表格test.xls中哦
import xlwt

filename = xlwt.Workbook()
sheet = filename.add_sheet("hel")
# 下面是把表头写上
for i in range(0, len(biaotou)):
    sheet.write(0, i, biaotou[i])
    # 求和前面的文件一共写了多少行
zh = 1
for i in range(ge):
    for j in range(len(matrix[i])):
        for k in range(len(matrix[i][j])):
            sheet.write(zh, k, matrix[i][j][k])
        zh = zh + 1
print("我已经将%d个文件合并成1个文件,并命名为%s.xls.快打开看看正确不?" % (ge, file))
filename.save(filedestination + file + ".xls")

————————————————————————

例子:下面是6个相同表格e1.xls-e6.xls的内容,在本人电脑上,表格路径为:D:\\Python\\Documents\\,大家可以根据需要更改路径。

下面是运行程序后,生成的表格test.xls

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

susan花雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值