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

引言

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

问题描述

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

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

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

import openpyxl as op
import xlrd as xr
labels=[str(i)+'年' for i in range(2000,2005)]
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"示范文件已经上传,如有需要,可以下载。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值