查看原文
其他

[快学Python3]读写Excel - openpyxl库

苦叶子 开源优测 2022-11-13

点击上方蓝字“开源优测”一起玩耍

什么是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 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。

# -*- 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。

# -*- 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")

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


开源优测

分享软件测试开源技术、经验、方案的首发平台

长按二维码/微信扫描 关注开源优测

QQ群:260407012

苦叶子私人微信:liyimin1912

有问题,可留言或加好友进微信群

苦叶子原创文章首发平台


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存