python3.7中使用代码合并多个excel表格中的数据

毫无疑问,现在网上有很多关于用python操作Excel表格的例子,但是python更新很快,有些库也会跟着跟新,这就导致了之前发布的一些代码就不能再使用了。

在python3.7中已经不支持打开.xls的文件了,但是截止到2020年3月27日网上相关的操作代码中还是充斥着用python打开.xls文件的例子。在这里,就稍微的总结一下如何使用代码操作excel表格:合并多个表格中的全部数据到新的表格中。

相关版本

python 版本:3.7.0 xlrd库:1.2.0 xlsxwriter库:1.1.0

具体代码

import xlrd
import xlsxwriter

#打开Excel文件
def open_xlsx(file):
    try:
        fh = xlrd.open_workbook(file)
        return fh
    except exception as err:
        print(str("error open:" + e))

#获取sheet表
def getsheet(fh):
    return fh.sheets()

#获取sheet表中的行数
def getnrows(fh, sheet):
    table = fh.sheets()[sheet]
    content = table.nrows
    return content

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

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

#主程序
if __name__ == '__main__':
    allxlsx = ['E:/python/edit/program/sudoku/try01.xlsx',
               'E:/python/edit/program/sudoku/try02.xlsx']
    datavalue = []
    for fl in allxlsx:
        fh = open_xlsx(fl)
        x = getshnum(fh)
        for shnum in range(x):
            print("正在读取文件:" + str(fl) + "的第" + str(shnum) + "个sheet表的内容.....")
            rvalue = getFilect(fl, shnum)

    endfile = 'E:/python/edit/program/sudoku/test01.xlsx'
    wb1 = xlsxwriter.Workbook(endfile)
    ws = wb1.add_worksheet()
    for a in range(len(rvalue)):
        for b in range(len(rvalue[a])):
            c = rvalue[a][b]
            ws.write(a, b, c)
    wb1.close()
    print("文件合并完成")

一般情况下运行以上代码就可以实现,但是博主在与运行的时候出现了找不到xlrd与xlsxwrier库的问题。
在检查、安装以上两个库之后还是没有解决问题,这个时候就需要找到这两个库的位置,之后复制到运行这个python脚本的同一个文件架中,之后在运行就可以了。

本文参考:https://blog.csdn.net/d1240673769/article/details/74513206

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值