Python操作EXCEL电子表格

2019-02-21  本文已影响0人  M4K0

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')另存文件,大概是文件较大的缘故,执行到这一步程序会卡一下。

运行结果

image.png
上一篇 下一篇

猜你喜欢

热点阅读