[Python3]读写Excel - openpyxl库,,什么是openpyx


什么是openpyxl

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

openpyxl提供哪些能力?

excel的基本读写能力

与pandas和numpy无缝链接能力

excel里图表管理

excel单元格注释管理

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

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

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

如何安装openpyxl

使用以下命令安装openpyxl库

pip install openpyxl

导入openpyxl模块

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

from oepnpyxl import Workbook

一个简单的示例

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

# -*- coding:utf-8 -*-__author__ = ‘谷白‘from openpyxl import Workbookif __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。

# -*- coding:utf-8 -*-__author__ = ‘谷白‘from openpyxl import load_workbookif __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。

# -*- coding:utf-8 -*-__author__ = ‘谷白‘import urllib.requestfrom openpyxl import Workbookif __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")

打开ebook.xlsx查看爬取结果如下:

[Python3]读写Excel - openpyxl库

评论关闭