【python】用python实现多个excel合并成一个excel文件------直接上代码

python/python爬虫 专栏收录该内容
20 篇文章 2 订阅

         小虾也是参考了一些大神的代码,然后自己动手实现了一下,然后发布出来,有需要的来学习呀!

         小虾在这儿提供2种方法来实现,但小虾比较喜欢第一种,容易而且好理解一点。

 第一种实现方法:

# 导入需要使用的包
import xlrd  # 读取Excel文件的包
import xlsxwriter  # 将文件写入Excel的包

source_xls = ["C:/Users/yxx/Desktop/ing/1.xlsx", "C:/Users/yxx/Desktop/ing/2.xlsx"]
target_xls = "C:/Users/yxx/Desktop/ing/3.xlsx"

# 读取数据
data = []
for i in source_xls:
    wb = xlrd.open_workbook(i)      # 先打开第一个文件1.xlsx
    for sheet in wb.sheets():       # 读取 表中的 工作表sheet的个数
        for rownum in range(sheet.nrows):   # 依次读取一个sheet中的数据
            data.append(sheet.row_values(rownum))  # 把其数据放入 data[]列表中
print(data)     # 打印该列表

# 写入数据
workbook = xlsxwriter.Workbook(target_xls)  # 创建了一个名字叫做3.xlsx , Excel表格文件
worksheet = workbook.add_worksheet()  # 建立sheet,
font = workbook.add_format({"font_size":14})  # 表格中值(字体)的大小
for i in range(len(data)):            # 从data列表中读取数据
    for j in range(len(data[i])):
        worksheet.write(i, j, data[i][j], font)
# 关闭文件流
workbook.close()

实验结果:                                                                             

第二种方法实现:

# 导入需要使用的包
import xlrd  # 读取Excel文件的包
import xlsxwriter  # 将文件写入Excel的包

# 打开一个excel文件
def open_xls(file):
    f = xlrd.open_workbook(file)
    return f

# 获取excel中所有的sheet表
def getsheet(f):
    return f.sheets()

# 获取sheet表的行数
def get_Allrows(f, sheet):
    table = f.sheets()[sheet]
    return table.nrows

# 读取文件内容并返回行内容
def getFile(file, shnum):
    f = open_xls(file)
    table = f.sheets()[shnum]
    num = table.nrows
    for row in range(num):
        rdata = table.row_values(row)
        datavalue.append(rdata)
    return datavalue

# 获取sheet表的个数
def getshnum(f):
    x = 0
    sh = getsheet(f)
    for sheet in sh:
        x += 1
    return x


# 函数入口
if __name__ == '__main__':
    # 定义要合并的excel文件列表
    allxls = ['C:/Users/yxx/Desktop/ing/1.xlsx', 'C:/Users/yxx/Desktop/ing/2.xlsx']  # 列表中的为要读取文件的路径
    # 存储所有读取的结果
    datavalue = []
    for fl in allxls:
        f = open_xls(fl)
        x = getshnum(f)
        for shnum in range(x):
            print("正在读取文件:" + str(fl) + "的第" + str(shnum) + "个sheet表的内容...")
            rvalue = getFile(fl, shnum)
    # 定义最终合并后生成的新文件
    endfile = 'C:/Users/yxx/Desktop/ing/4.xlsx'
    wb = xlsxwriter.Workbook(endfile)
    # 创建一个sheet工作对象
    ws = wb.add_worksheet()
    for a in range(len(rvalue)):
        for b in range(len(rvalue[a])):
            c = rvalue[a][b]
            ws.write(a, b, c)
    wb.close()

    print("文件合并完成")

实验结果:

                           

                            不后悔过去,不幻想未来,把握好现在,就是对自己最好的交代!!!!!!!!!!!!

©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

苦逼的虾

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值