Python操作EXCEL电子表格用到的是openpyxl库,从《Python编程快速上手-让繁琐工作自动化》这本书入手,然后发现部分内容已过时,后参考官方文档逐步完成。
update:2019-02-21 16:18:56
环境搭建
pip install openpyxl
基本操作
http://openpyxl.readthedocs.org/
任务描述
同一个xlsx表格中的两个sheet:sheet2是待填充的表格、hangye是前文中的爬虫获取到的部分数据,需要把hangye数据粘贴到sheet2指定位置。注意:这些位置虽然在同一列,但行号是不连续的。
代码详情
#-*-coding:utf-8-*-
import openpyxl
import sys
reload(sys)
sys.setdefaultencoding('utf8')
以上代码,后面三行是为了避免ascii字符读写错误。
接下来正式开始操作电子表格
wb = openpyxl.load_workbook('target.xlsx')
print wb.get_sheet_names()
sheet2 = wb.get_sheet_by_name('Sheet2')
sheethy = wb.get_sheet_by_name('hangye')
coshy = len(tuple(sheethy.columns))
roshy = len(tuple(sheethy.rows))
以上代码中,打开了电子表格,并实例化了两个sheet对象。表格的行数可以用len(tuple(sheethy.columns))
获取。
接下来,遍历sheet hangye中的每一行,在sheet2中寻找与其匹配的主键,如果匹配到则赋值,然后寻找下一个匹配。
for hyr in range(1,roshy+1):
tmpcname = sheethy.cell(row=hyr,column=2).value
tmpchy = sheethy.cell(row=hyr,column=3).value
for gsr in range(6282,6854):
tmpcname2 = sheet2.cell(row=gsr,column=2).value
if tmpcname == tmpcname2:
sheet2.cell(gsr,column=6).value=tmpchy
print "Loaded \t",
print sheet2.cell(gsr,column=6).value
break
wb.save('result.xlsx')
print "done!"
最后wb.save('result.xlsx')
另存文件,大概是文件较大的缘故,执行到这一步程序会卡一下。
网友评论