【openpyxl】python处理excel的常用操作
生活随笔
收集整理的這篇文章主要介紹了
【openpyxl】python处理excel的常用操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- openpyxl
- 相關處理Excel的python庫
- openpyxl安裝
- openpyxl使用
- 基本概念
- 創建加載和保存
- 操作和修改
openpyxl
openpyxl是一個處理Excel文件的python庫,也是python辦公自動化的一大利器,本文主要介紹一些openpyxl的常用操作
相關處理Excel的python庫
- OpenPyXL 是個讀寫 Excel 2010 xlsx/xlsm/xltx/xltm 的 Python 庫,簡單易用,功能廣泛,單元格格式/圖片/表格/公式/篩選/批注/文件保護等等功能應有盡有,圖表功能是其一大亮點
- xlwings 是一個基于 BSD 授權協議的 Python 庫,可以輕松的使用 Python 操作 Excel,也可以在 Excel 中調用 Python,以接近 VBA 語法的實現 Excel 編程,支持 Excel 宏,并且可以作為 Web 服務器,提供 REST API 接口
- pandas 數據處理是 pandas 的立身之本,Excel 作為 pandas 輸入/輸出數據的容器
- win32com 從命名上就可以看出,這是一個處理 windows 應用的擴展,Excel 只是該庫能實現的一小部分功能。該庫還支持 office 的眾多操作。需要注意的是,該庫不單獨存在,可通過安裝 pypiwin32 或者 pywin32 獲取
- Xlsxwriter 擁有豐富的特性,支持圖片/表格/圖表/篩選/格式/公式等,功能與 openpyxl 相似,優點是相比 openpyxl 還支持 VBA 文件導入,迷你圖等功能,缺點是不能打開/修改已有文件,意味著使用 xlsxwriter 需要從零開始
- DataNitro 一個 Excel 的付費插件,內嵌到 Excel 中,可完全替代 VBA,在 Excel 中使用 python 腳本。既然被稱為 Excel 中的 python,同時可以與其他 python 庫協同。
- xlutils 基于 xlrd/xlwt,老牌 python 包,算是該領域的先驅,功能特點中規中矩,比較大的缺點是僅支持 xls 文件。
openpyxl安裝
pip install openpyxlopenpyxl使用
基本概念
- workbook 相當于一個 Excel 文件檔,每個被創建和打開的 Excel 文件都是獨立的 Workbook 對象
- sheet Excel 文檔中的表單,每個 Excel 文檔至少需要一個 sheet
- cell 單元格,是不可分割的基本數據存儲單元
創建加載和保存
from openpyxl import load_workbook,Workbook# 創建一個 workbook wb = Workbook() # 獲取被激活的 worksheet ws = wb.active#加載已有的excel文件 wb = load_workbook('test.xlsx') ws = wb.active # 顯示文檔中包含的 表單 名稱 print(wb.sheetnames)#保存文件 wb.save("sample1.xlsx")load_workbook 除了參數 filename外為還有一些有用的參數:
- read_only:是否為只讀模式,對于超大型文件,要提升效率有幫助
- keep_vba :是否保留 vba 代碼,即打開 Excel 文件時,開啟并保留宏
- guess_types:是否做在讀取單元格數據類型時,做類型判斷
- data_only:是否將公式轉換為結果,即包含公式的單元格,是否顯示最近的計算結果
- keep_links:是否保留外部鏈接
操作和修改
from openpyxl import load_workbookwb = load_workbook('sample.xlsx')#操作sheet ws1 = wb.create_sheet("sheet") #創建一個 sheet 名為 sheet ws1.title = "新表單" # 設置 sheet 標題 ws2 = wb.create_sheet("mysheet", 0) # 創建一個 sheet,插入到最前面 默認插在后面 ws2.title = u"你好" # 設置 sheet 標題 ws1.sheet_properties.tabColor = "1072BA" # 設置 sheet 標簽背景色#操作單元格 # 通過單元格名稱設置 ws1["A1"]=123.11 ws1["B2"]="你好"# 通過行列坐標設置 d = ws1.cell(row=4, column=2, value=10)# 操作單列 for cell in ws["A"]:print(cell.value) # 操作單行 for cell in ws["1"]:print(cell.value) # 操作多列 for column in ws['A:C']:for cell in column:print(cell.value) # 操作多行 for row in ws['1:3']:for cell in row:print(cell.value) # 指定范圍 for row in ws['A1:C3']:for cell in row:print(cell.value) # 所有行 for row in ws.iter_rows():for cell in row:print(cell.value) # 所有列 for column in ws.iter_cols():for cell in column:print(cell.value) # 合并 ws.merge_cells('A2:D2') # 解除合并 ws.unmerge_cells('A2:D2')ws.merge_cells(start_row=2,start_column=1,end_row=2,end_column=4) ws.unmerge_cells(start_row=2,start_column=1,end_row=2,end_column=4)參考
總結
以上是生活随笔為你收集整理的【openpyxl】python处理excel的常用操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是区块链共识算法?
- 下一篇: 删除了ppt还能恢复吗?ppt误删除怎么