本文共 1742 字,大约阅读时间需要 5 分钟。
毫无疑问,现在网上有很多关于用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 xlrdimport 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脚本的同一个文件架中,之后在运行就可以了。本文参考:
转载地址:http://rewlf.baihongyu.com/