前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[快学Python3]读写Excel - openpyxl库

[快学Python3]读写Excel - openpyxl库

作者头像
苦叶子
发布2018-04-09 10:56:41
2.3K0
发布2018-04-09 10:56:41
举报
文章被收录于专栏:开源优测开源优测

什么是openpyxl

openpyxl是一个第三方的pythonexcel读写库,支持Excel2010 xlsx/xlsm/xltx/xltm文件格式。

openpyxl提供哪些能力?

  • excel的基本读写能力
  • 与pandas和numpy无缝链接能力
  • excel里图表管理
  • excel单元格注释管理

在本节我们主要分享什么?

主要分享openpyxl的excel读写功能。提供常用的代码实例。

对于图表、注释管理、pandas和numpy综合使用不在本节内容讲解范围内,有兴趣的朋友可以自己去研究。

如何安装openpyxl

使用以下命令安装openpyxl库

代码语言:javascript
复制
pip install openpyxl

导入openpyxl模块

要使用openpyxl对excel进行读写,需要导入其中的Workbook类,方法如下:

代码语言:javascript
复制
from oepnpyxl import Workbook

一个简单的示例

我们先一个简单的示例,如何是使用openpyxl写excel。

代码语言:javascript
复制
# -*- coding:utf-8 -*-

__author__ = '苦叶子'

from openpyxl import Workbook

if __name__ == "__main__":    
    print("写excel简单示例")    

    # 创建一个excel工作区
    wb = Workbook()    

    # 激活当前工作簿
    ws = wb.active    
    
    # 往单元格A1写入数据, 其他单元格写入类似
    ws['A1'] = "开源优测"

    # 写下一行数据,列表元素对应每一个单元格
    ws.append([1, 2, 3])    
    
    # 写入时间类型到excel, python会自动将类型转换成excel的日期时间类型
    import datetime
    ws['A2'] = datetime.datetime.now()    

    # 保存为excel文件
    wb.save("简单excel写示例.xlsx")

读取已存在的excel文件

下面就上面示例生成的“简单excel写示例.xlsx”文件,进行读取,并将内容输出值console。

代码语言:javascript
复制
# -*- coding:utf-8 -*-

__author__ = '苦叶子'


from openpyxl import load_workbook

if __name__ == "__main__":    

    print("读取已存在的excel文件")

    wb = load_workbook("简单excel写示例.xlsx")    
    
    # 获取所有sheet名, 返回的是list类型
    sheets = wb.get_sheet_names()    
    print(type(sheets))    

    # 遍历sheets,并读取其单元格内容打印输出
    for sh in sheets:        
        print("读取工作簿名称: ", sh)    

    # 获取要读取的sheet
    ws = wb.get_sheet_by_name(sheets[0])    
    
    # 读取Sheet A1 , A2, B2, C2单元格内容

    # 读取A1单元格的值
    A1 = ws['A1'].value    
    print("A1单元格的值: ", A1)    

    # 读取A2, B2, C2
    for index in ('A2', 'B2', 'C2'):        
        print(index, "单元格的值: ", ws[index].value)    
    
    # 读取空值的单元格, openpyxl对于空值的单元格,返回None
    F1 = ws['F1'].value    
    print("F1单元格的值: ", F1)

高级示例

下面就使用urllib从网络爬取数据,写入excel进行示例演示,从豆瓣网爬取部分书籍数据,写入excel。

代码语言:javascript
复制
# -*- coding:utf-8 -*-

__author__ = '苦叶子'

import urllib.request
from openpyxl import Workbook

if __name__ == "__main__":    
    print("爬取豆瓣网书籍数据写入excel示例")    
    
    # 通过豆瓣网搜索API,搜索python关键词,采集书籍数据
    # 本示例只采集第一页的数据
    url = "https://api.douban.com/v2/book/search?q=python"
    response = urllib.request.urlopen(url)    
    
    # 将bytes数据流解码成string
    ebook_str = response.read().decode()    

    # 将string转换成dict
    ebook_dict = eval(ebook_str)    
    
    # 构建一个Workbook对象
    wb = Workbook()    # 激活第一个sheet
    ws = wb.active    # 写入表头
    ws.append(["书名", "作者", "描述", "出版社", "价格"])    
    
    # 写入书信息
    for book in ebook_dict["books"]:
        ws.append([book["title"], 
            ",".join(book["author"]), 
            book["summary"], 
            book["publisher"], 
            book["price"]])    
    
    # 保存
    wb.save("ebook.xlsx")
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何安装openpyxl
  • 导入openpyxl模块
  • 一个简单的示例
  • 读取已存在的excel文件
  • 高级示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档