【一文搞定】使用python-openpyxl庫讀寫Excel表格(增刪改查操作)

2022-01-01 樂學偶得

【一文搞定】使用python-openpyxl庫讀寫Excel表格(增刪改查操作)

如果對基礎不太熟悉,可以看咱們Python的上幾篇:如果對Java基礎知識點感興趣的,可以先看咱們上期的一篇

點擊讓手機旋轉,

即可自動調整表格格式

進行觀看

向上滑動查看更多

以後會持續的為大家提供【免費]、【高質量】的全球技術行業資訊;前沿IT技術分享;一線大廠招聘、內推與筆面試準備等服務。

為了方便大家下載,可以關注我們的公眾號:

回覆:【python】、【Java】、【sql】、【面試】

即可免費自助獲取對應資料下載連結。

好了,進入正題,我們來看今天的【一文搞定】使用python-openpyxl庫讀寫Excel表格(增刪改查操作)



包括內容有:

一、前言

二、安裝openpyxl

三、openpyxl的使用

1、創建Excel文件

2、加載已存在的Excel文件

3、創建sheet

4、判斷某個sheet是否存在

5、遍歷所有Sheet的名稱

6、寫入單元格

7、獲取單元格的各個屬性值

8、遍歷單元格

9、最大行最大列

10、刪除行或列

11、設置字體

12、填充單元格顏色

13、設置行高與列寬




最近需要做個小工具,可以通過python來讀寫Excel,實現增刪改查操作。以前用的是xlrd和xlwt這兩個python庫,今天我要講的是openpyxl庫,我覺得openpyxl比xlrd和xlwt更強大更好用,話不多說,開始吧。



可以直接通過命令行安裝


如果你是內網環境,則可以先在外網下載openpyxl庫然後轉到內網再安裝。
openpyxl下載地址:https://pypi.org/project/openpyxl/#files


不過因為openpyxl還依賴了et_xmlfile庫,所以你還得下載個et_xmlfile。

如果是用命令行pip install openpyxl,則會自動下載依賴。

et_xmlfile下載地址:https://pypi.org/project/et-xmlfile/#files


安裝完畢後,在python中執行import openpyxl如果沒有報錯,則說明安裝成功了。




演示代碼:

import openpyxl
book = openpyxl.Workbook()book.save(u'我的表格.xlsx')


運行效果如下,生成了一個excel表格。




上面已經創建了一個表格,我們可以直接加載它。
演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')book.close()




演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book.create_sheet('我的Sheet')book.save(u'我的表格.xlsx')book.close()

運行效果如下:




演示代碼:


import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')if None != book[u'我的Sheet']: print('我的Sheet 存在')book.close()


運行結果:



演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')for sheet_name in book.sheetnames: print(sheet_name)book.close()

運行結果:




演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']sheet.cell(1,1).value = 'name'sheet.cell(2,1).value = '姓名'sheet.cell(3,1).value = '林新發'book.save(u'我的表格.xlsx')book.close()

運行效果




為了演示,我在我名字那裡加個批註:



演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']cell = sheet.cell(3,1)print('value:%s'%cell.value)print('row: %d, col: %d'%(cell.row, cell.column))print('column_letter: %s'%cell.column_letter)print('coordinate: %s'%cell.coordinate)print('data_type: %s'%cell.data_type)print('encoding: %s'%cell.encoding)print('style: %s'%cell.style)print('comment: %s'%cell.comment)book.close()


運行結果:

value:林新發row: 3, col: 1column_letter: Acoordinate: A3data_type: sencoding: utf-8style: 常規comment: Comment: linxinfa:多才多藝 by linxinfa



為了演示,我加多一寫數據:

一行一行遍歷,演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']for one_row in sheet.rows: for cell in one_row: print(cell, cell.value)book.close()

運行結果:

<Cell 'Sheet'.A1> name<Cell 'Sheet'.B1> profession<Cell 'Sheet'.C1> hobby<Cell 'Sheet'.A2> 姓名<Cell 'Sheet'.B2> 職業<Cell 'Sheet'.C2> 愛好<Cell 'Sheet'.A3> 林新發<Cell 'Sheet'.B3> Unity3D遊戲開發工程師<Cell 'Sheet'.C3> 吉他、鋼琴、畫畫、貓貓、寫博客


一列一列遍歷,演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']for one_col in sheet.columns: for cell in one_col: print(cell, cell.value)book.close()

運行結果:

<Cell 'Sheet'.A1> name<Cell 'Sheet'.A2> 姓名<Cell 'Sheet'.A3> 林新發<Cell 'Sheet'.B1> profession<Cell 'Sheet'.B2> 職業<Cell 'Sheet'.B3> Unity3D遊戲開發工程師<Cell 'Sheet'.C1> hobby<Cell 'Sheet'.C2> 愛好<Cell 'Sheet'.C3> 吉他、鋼琴、畫畫、貓貓、寫博客



為了演示,再加點數據。


import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']print('max_row: %d, max_column: %d'%(sheet.max_row, sheet.max_column))book.close()

運行結果:

max_row: 4, max_column: 3



為了演示,我再加多些數據。



演示代碼:

import openpyxl
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']sheet.delete_rows(5)sheet.delete_cols(4)book.save(u'我的表格.xlsx')book.close()

運行效果:




演示代碼:

import openpyxlfrom openpyxl.styles import Font
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']cell = sheet.cell(4,1)cell.font = Font(name='微軟雅黑',size=18,color='00FFCC99',b=True,i=False)book.save(u'我的表格.xlsx')book.close()

運行效果:



填充顏色之前



演示代碼:

import openpyxlfrom openpyxl.styles import PatternFill
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']cell = sheet.cell(4,2)cell.fill = PatternFill('solid',fgColor='FFBB00')book.save(u'我的表格.xlsx')book.close()


運行效果:



為了演示,我先把行高和列寬改成這樣:



演示代碼:

import openpyxlfrom openpyxl.utils import get_column_letter
book = openpyxl.load_workbook(u'我的表格.xlsx')sheet = book['Sheet']row_4 = sheet.row_dimensions[4]row_4.height = 15col_2 = sheet.column_dimensions[get_column_letter(2)]col_2.width = 40book.save(u'我的表格.xlsx')book.close()


執行效果:

注意,上面我用到了一個get_column_letter方法,因為column_dimensions需要的是字母參數,所以我們不能直接傳2,通過get_column_letter(2)即可得到"B",也就是第2列。

如果要反過來,通過字母逆算出數字,則用column_index_from_string方法,例:

from openpyxl.utils import column_index_from_stringprint(column_index_from_string('B'))

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本聲明。

本文連結:https://blog.csdn.net/muyashui/article/details/116309278

更多內容,歡迎標⭐公眾號,每日更新ing

最後,感謝大家對樂學偶得的關注與支持~

歡迎更多的小夥伴加入樂學偶得大家庭~

添加樂學偶得校花小姐姐,自助領取禮包與自助入群~

輸入【相應資料編號與想加入的群】,自助領取資料與進入學習交流群

比如想進入自動辦公相關群,直接@小助手 【自動辦公群】即可自助進群

(純交流,無廣告,群內福利持續更新,免費領取)

點擊左下角【閱讀原文】查看【樂學偶得】更多乾貨

相關焦點

  • n種方式教你用python讀寫excel等數據文件
    內存不夠時使用,一般不太用readlines()   :一次性讀取整個文件內容,並按行返回到list,方便我們遍歷具體用法可見:一文搞懂python文件讀寫2. 內置模塊csvpython內置了csv模塊用於讀寫csv文件,csv是一種逗號分隔符文件,是數據科學中最常見的數據存儲格式之一。
  • n種方式教你用Python讀寫Excel等數據文件
    下面整理下python有哪些方式可以讀寫數據文件。1. read、readline、readlinesread()  :一次性讀取整個文件內容。推薦使用read(size)方法,size越大運行時間越長readline()  :每次讀取一行內容。
  • Python利用openpyxl處理excel文件(openpyxl的安裝及簡介)
    但是試想,如果把上述excel公式變成諸如python中的if-else結構,其可讀性肯定是不容置疑的……今天,我們來介紹一款excel處理利器—openpyxl(python庫文件)。根據openpyxl官方文檔,結合個人近年來使用心得,總結openpyxl應用中以下幾個知識點:(一)openpyxl的安裝、導入及相關注意事項;(二)對excel文件的打開、讀寫、編輯、保存相關;(三)對excel文件中樣式的編輯;
  • 實戰代碼 | Python自動化辦公 - 對Excel表格的操作(openpyxl的基本使用)
    2.輸入安裝指令(電腦要聯網,推薦使用國內鏡像網站,安裝更快,不然很慢)  Python pip安裝第三方庫的國內鏡像Windows系統下,一般情況下使用pip在DOS界面安裝python第三方庫時,經常會遇到超時的問題,導致第三方庫無法順利安裝,此時就需要國內鏡像源的幫助了。
  • 詳解Python操作Excel文件
    前言本篇文章主要總結了一下利用python操作Excel文件的第三方庫和方法。常見庫簡介1.xlrdxlrd是一個從Excel文件讀取數據和格式化信息的庫,支持.xls以及.xlsx文件。支持Excel操作。4.xlwingsxlwings是一個可以實現從Excel調用Python,也可在python中調用Excel的庫。
  • 氣象編程 | 使用python操作Excel文件
    今天使用Python來操作Excel。python操作Excel的庫有很多,大概有xlrd、xlwt、openpyxl、XlsxWriter、xlutils、pandas等。這些庫的操作對xls和xlsx的支持不同,有個只可以操作xls,有的只可以進行讀操作。
  • python操作excel文件一站式搞定
    1,相關模塊介紹2,查看是否已經安裝相關模塊3,安裝相關模塊4,會查看當前目錄5,會在excel中正確寫入文件路徑6,操作Excel中的三大對象(book,sheet,cell)1,相關模塊介紹xlrd庫:從Excel中讀取數據,支持xls、xlsx,前2個字母表示excel文件
  • 用Python讓Excel飛起來——基本操作(二)
    但是xlrd等模塊還存在一定的問題:僅僅支持對舊格式的.xls文件進行讀寫,而且無法修改原始Excel等等。因此我們這次使用openpyxl和pandas庫來對Excel進行操作。新建Excel需要先通過openpyxl.Workbook()方法來獲取一個新的Excel文檔,通過active屬性得到可訪問的工作表sheet。接下來只要在表格中填入數據即可,需要注意的是序列號是從1開始的。
  • Python Excel 辦公自動化系列——win32com/pandas庫使用詳解
    01 Python Excel庫對比02 Python xlrd 讀取 操作Excel03 Python xlwt 寫入 操作Excel04 Python xlutils 修改 操作Excel05 Python xlwings 讀取 寫入 修改 操作Excel
  • Python使用xlrd和xlwt讀寫Excel的簡單用法
    標準的 Excel 文件(xls/xlsx)具有較複雜的格式,並不方便像普通文本文件一樣直接進行讀寫,需要藉助第三方庫來實現。常用的庫是 python-excel 系列:xlrd、xlwt、xlutils它們有個缺陷,就是只能處理 xls 文件。如果你想用新版本的 xlsx,可以考慮 openpyxl 和 xlsxwriter。
  • Python處理excel的強大工具-openpyxl
    的操作,下面簡單介紹下,如何使用Python的openpyxl庫處理excel文檔。首先,Python處理excel的第三方庫有:xlrd,xlwt,openpyxl等。其中xlrd只能讀excel,xlwt只能寫excel,所以今天我們就重點了解一下openpyxl,它既可以讀寫數據,還能操作工作表,比如生成柱狀圖等。
  • Python讀寫Excel表格,就是這麼簡單粗暴又好用
    以前正好在一本書上看到過使用Python來處理Excel表格,可惜沒有仔細看。於是我到處查找資料,基本解決了日常所需,終於算是完成了任務,因此撰寫此文就算是總結吧,主要記錄使用過程的常見問題及解決。python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。可從這裡下載https://pypi.python.org/pypi。
  • Python讀取excel三大常用模塊到底誰最快,附上詳細使用代碼
    2.openpyxl小五說這個最好用的python 操作 excel 表格庫,下面可以看到openpyxl的讀取方法。from openpyxl import load_workbook# 1.打開 Excel 表格並獲取表格名稱workbook = load_workbook(filename="Python招聘數據(全).xlsx")print(workbook.sheetnames)# 2.通過 sheet 名稱獲取表格
  • 如何用Python中的openpyxl操作Excel?
    3.workbook使用openpyxl無需在文件系統上創建文件,只需導入 Workbook 類並開始使用。2.指定單元格的值使用openpyxl.worksheet.Worksheet.cell()方法操作某行某列的某個值:>>> d = ws.cell(row=4, column=2, value=10)注意:當worksheet
  • Python利用openpyxl處理Excel文件(Excel文件基本操作)
    上一篇,我們簡要介紹了openpyxl及其安裝過程,這一篇我們學習使用openpyxl處理Excel的具體過程,力爭涵蓋大多數官方文檔中相關內容,對這一知識點進行簡單的匯總。一、學習目標(一)openpyxl的具體使用。
  • 用Python的openpyxl庫,自動化Excel操作
    'YEARFRAC', 'YIELD', 'YIELDDISC', 'YIELDMAT', 'ZTEST'})br讓我們在 sample.xlsx 電子表格中添加一些公式。
  • 使用mybatis框架,完成增刪改查操作
    資料庫無外乎就是增刪改查,所以使用mybatis做一個完整的crud操作。最後使用動態代理對代碼優化,具體底層實現原理就不仔細深究了,大致知道怎麼回事就行。1UserDao接口資料庫四大操作:增刪改查在dao層中編寫一個接口,包含這四種操作的方法,其中查詢有全表和單條查詢。
  • Excel文件另類操作,如何用Python中xlrd模塊獲取電子表格的信息
    前面內容,我們介紹了Python使用openpyxl模塊對Excel文件進行操作的一些案例。喜歡的小夥伴可以關注我,看下往期的內容。今天,我們來詳細了解下Python處理Excel文件的另外一種模塊xlrd模塊。
  • Python讀寫Excel表格,就是這麼簡單粗暴又好用(文末送書)
    以前正好在一本書上看到過使用Python來處理Excel表格,可惜沒有仔細看。於是我到處查找資料,基本解決了日常所需,終於算是完成了任務,因此撰寫此文就算是總結吧,主要記錄使用過程的常見問題及解決。python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。可從這裡下載https://pypi.python.org/pypi。
  • Python利用openpyxl處理Excel文件(單元格及行列具體操作)
    前面章節主要梳理學習了openpyxl的基本操作及單元格樣式設置等相關內容,另外也穿插講解了部分單元格行列操作的知識點。通過實戰項目演示,進一步加深了印象,整個過程我們不難發現,對於使用openpyxl操作Excel文件,行列遍歷及單元格的定位操作是整個過程的重要技巧和先決條件,因此,這節我們著重講解openpyxl對於單元格及行列遍歷的具體操作。