[Python3]讀寫Excel - openpyxl庫
阿新 • • 發佈:2017-09-10
註釋 出版 logs com lin author arc ltm 一行
什麽是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查看爬取結果如下:
[Python3]讀寫Excel - openpyxl庫