1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用python操作excel的xls文件和xlsx文件之间的批量导出和填充数据

使用python操作excel的xls文件和xlsx文件之间的批量导出和填充数据

时间:2022-02-13 14:14:28

相关推荐

使用python操作excel的xls文件和xlsx文件之间的批量导出和填充数据

引言

我前面的博客基本上已经把python批量操作excel的方法说了个八成。但是,今天突然又发现一个问题,于是在此继续记录我遇到的这个问题,以供以后的工作借鉴,同时也与各位网友共享。这个问题就是:有时你会同时面对老版excel文件(.xls)和新版excel文件(.xlsx)之间的数据操作。比如下面这个案例。

问题描述

现有一个10个城市5年的"GDP(亿元).xls"(实际情况是80个城市的30年GDP数据,这里简化演示,并且数据也未必真实),该文件有5个sheet,名称分别是‘2000年’,'2001年',...,''。每个sheet的内容如下图:

我现在要新建一个"gdp.xlsx",内容如下图:

然后把xls文件里的数据填充到xlsx文件的相应位置。代码如下:

import openpyxl as opimport xlrd as xrlabels=[str(i)+'年' for i in range(2000,)]file1='C:/Users/user/Desktop/GDP(亿元).xls'file2='C:/Users/user/Desktop/gdp.xlsx'wb1=xr.open_workbook(file1)wb2=op.load_workbook(file2)ws2=wb2['Sheet1']for i in range(len(labels)):ws1=wb1.sheet_by_name(labels[i])for j in range(10):ws2.cell(2+j,2+i,value=ws1.cell(0+j,1).value)wb2.save(file2)

代码运行结果如下:

注意,对于已有的xls文件最好用xlrd.open_workbook()的方式打开,对于已有的xlsx文件,应该用openpyxl.load_workbook()的方式加载。而且,前者内部的工作表读取采用workbook.sheet_by_name(name)的方式,后者采用的是workbook[name]的方式读取。

本博客的"GDP(亿元).xls"示范文件已经上传,如有需要,可以下载。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。