中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么用openpyxl模塊操作Excel

發布時間:2022-05-17 09:29:02 來源:億速云 閱讀:317 作者:iii 欄目:開發技術

這篇文章主要介紹了Python怎么用openpyxl模塊操作Excel的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python怎么用openpyxl模塊操作Excel文章都會有所收獲,下面我們一起來看看吧。

正式開始前依舊是模塊的安裝,使用如下命令即可實現:

pip install openpyxl

官方對于該庫的描述是:

A Python library to read/write Excel 2010 xlsx/xlsm files

一款用于讀寫 Excel 2010 xlsx/xlsm 文件的庫。

1.打開已有 Excel 文件

拿到該庫之后,直接嘗試打開一個本地 Excel ,然后才能對其中的數據進行控制。

from openpyxl  import load_workbook
wb = load_workbook('測試表格.xlsx')
# 輸出
# <openpyxl.workbook.workbook.Workbook object at 0x00000195680F96D0>

繼續編碼前還是需要了解一些關于 Excel 的相關知識點,如下所示:

  • Excel 中列名是字母,行號是數字,例如鎖定第一個單元格是 A1,然后是 A2,接下來是A3;

  • Excel 中有工作簿,工作表,單元格三個概念組成,對應到 openpyxl 中就是 Workbook 類,Worksheet 類,Cell 類。

操作 Excel 基本遵循三步走策略:

  • 打開 Excel,產生 Workbook 對象;

  • 獲取表格對象,即 Worksheet 對象;

  • 操作表格中的單元格對象,即 Cell 對象。

有這些概念之后,你會發現后續的代碼就會變得極容易理解。

2.創建一個 Excel 文件,并修改 sheet

接下來的代碼將會創建一個 Excel 文件,并將第一個默認 sheet 修改為【測試】

import openpyxl
if __name__ == '__main__':
    wb = openpyxl.Workbook()
    ws = wb.active
    # 更改第一個 sheet 名稱
    ws.title = "測試"
    # 保存
    wb.save('example.xlsx')

在 Python 文件的運行目錄會生成如下文件,打開關注第一個 sheet 即可。

Python怎么用openpyxl模塊操作Excel

如果希望創建第二個表格頁(sheet),繼續在 Workbook 對象中追加 sheet 即可。

import openpyxl
if __name__ == '__main__':
    wb = openpyxl.Workbook()
    ws = wb.active
    # 更改第一個 sheet 頁名稱
    ws.title = "Sheet1"
    # 新增第二個 sheet 頁
    ws2 = wb.create_sheet("Sheet2")

    # 新增第三個 sheet 頁
    # 將 create_sheet() 函數中的第二個參數定義為 0,表示該 sheet 在最前面
    ws3 = wb.create_sheet("Sheet3", 0)
    # 保存
    wb.save('example.xlsx')

追加 sheet 使用的函數是 create_sheet() ,在使用的時候,可以根據第二個參數進行順序設置。

Python怎么用openpyxl模塊操作Excel

如果你希望對 sheet 頁簽進行更細節的設置,可以進行屬性配置,例如修改 sheet 頁簽背景

import openpyxl
if __name__ == '__main__':
    wb = openpyxl.Workbook()
    ws = wb.active
    # 更改第一個 sheet 頁名稱
    ws.title = "Sheet1"
    ws.sheet_properties.tabColor = "03a9f4"
    # 新增第二個 sheet 頁
    ws2 = wb.create_sheet("Sheet2")
    # 新增第三個 sheet 頁
    # 將 create_sheet() 函數中的第二個參數定義為 0,表示該 sheet 在最前面
    ws3 = wb.create_sheet("Sheet3", 0)
    # 保存
    wb.save('example.xlsx')

Python怎么用openpyxl模塊操作Excel

3.選擇 sheet 的不同方式

使用 wb["Sheet1"] 可以通過類字典模式進行 sheet 讀取,還可以使用 get_sheet_by_name() 方法進行調用,但是該方法已被棄用,建議掌握第一種用法即可。

import openpyxl
if __name__ == '__main__':
    wb = openpyxl.Workbook()
    ws = wb.active
    # 更改第一個 sheet 頁名稱
    ws.title = "Sheet1"
    ws_1 = wb["Sheet1"]
    ws_1_1 = wb.get_sheet_by_name("Sheet1")  # 該方法將被棄用,建議用上述形式調用
    print(ws_1)
    print(ws_1_1)
    # wb.save('example.xlsx')

4.Worksheet對象

Worksheet 對象即表格對象,用于得到單元格中的數據,修改表格中的內容。

優先學習的相關屬性如下所示:

  • title:表格的標題;

  • dimensions:表格數據區域大小;

  • max_row:表格的最大行;

  • min_row:表格的最小行;

  • max_column:表格的最大列;

  • min_column:表格的最小列;

  • rows:按行獲取單元格(Cell)對象 ,返回生成器;

  • columns:按列獲取單元格(Cell對象),返回生成器。

具體代碼如下所示,其中用到的表格參考下述截圖:

from openpyxl  import load_workbook
wb = load_workbook('測試表格.xlsx')
if __name__ == '__main__':
    ws = wb.active
    # 更改第一個 sheet 頁名稱
    ws.title = "My_Sheet"
    ws_1 = wb["My_Sheet"]
    print(ws_1.title)  # 獲取標題
    print(ws_1.dimensions)  # 有數據的區域大小,無數據是 A1:A1
    print(ws_1.max_row) # 最大行數
    print(ws_1.min_row) # 最小行數
    print(ws_1.max_column)
    print(ws_1.min_column)
    print(ws_1.rows)
    print(ws_1.columns)

Python怎么用openpyxl模塊操作Excel

除屬性外,Worksheet 對象的方法如下所示 Worksheet方法如下:

  • iter_rows:按行獲取所有單元格,其值可以調用 Cell 的屬性(min_row, max_row, min_col, max_col);

  • iter_columns:按列獲取所有的單元格

  • append:在表格末尾添加數據

  • merged_cells:合并多個單元格

  • unmerged_cells:移除合并的單元格

Worksheet 對象的屬性和方法基本都會返回 Cell對象,即單元格對象。

5.Cell 對象

Cell對象比較簡單,常用的屬性如下:

  • row :單元格所在的行

  • column:單元格坐在的列

  • value:單元格的值

  • coordinate:單元格的坐標

from openpyxl import load_workbook
wb = load_workbook('測試表格.xlsx')
if __name__ == '__main__':
    ws = wb.active
    for item in ws.rows:
        print(item)  # 按照行輸出
        print(item[0].value)  # 輸出單元格的值

操作修改單元格數據 獲取單元格之后,就可以對其中的值進行操作,例如下述代碼

from openpyxl import load_workbook
wb = load_workbook('測試表格.xlsx')
if __name__ == '__main__':
    ws = wb.active
    # 輸出修改前
    for item in ws.rows:
        print(item)  # 按照行輸出
        print(item[0].value)  # 輸出單元格的值
        item[0].value = 1
    # 輸出修改后的值,注意不保存文件,數據不會存儲
    for item in ws.rows:
        print(item[0].value)  # 輸出單元格的值
    # wb.save('example.xlsx')

單元格內容修改完畢之后,需要使用 wb.save() 方法才可以存儲文件修改之后的內容。

使用行列式定位單元格 使用工作表的 cell() 方法,可以定位到單元格,具體用法如下所示

from openpyxl import load_workbook
wb = load_workbook('測試表格.xlsx')
if __name__ == '__main__':
    ws = wb.active
    # 輸出修改前
    for item in ws.rows:
        print(item)  # 按照行輸出
        print(item[0].value)  # 輸出單元格的值
        item[0].value = 1
    # 輸出修改后的值,注意不保存文件,數據不會存儲
    for item in ws.rows:
        print(item[0].value)  # 輸出單元格的值

    # 直接定位單元格
    c = ws.cell(row=2, column=3)
    print(c)
    print("單元格A2,B3里面的內容是",c.value)
    wb.save('example.xlsx')

6.單元格插入圖像

使用如下代碼,可以在Excel 中的單元格內添加圖片。 在正式編碼前,先導入如下模塊

from openpyxl.drawing.image import Image

接下來就可以在對應的單元格中去添加相應的圖片了,具體代碼如下所示,其中比較重要的是 add_image() 方法。

 # 創建圖像,參數是圖片路徑
img = Image('cup_PNG2001.png')
# add_image(圖片,要添加單元格的位置)
ws.add_image(img, 'A2')
wb.save('example.xlsx')

7.設置單元格樣式

在 Excel 中,我們可以針對單元格樣式進行操作,例如加粗,傾斜,背景色。

需要提前導入的相關類:

from openpyxl.styles import Font, colors, Alignment

接下來可以修改相應的字體:

from openpyxl import load_workbook
from openpyxl.styles import Font, colors, Alignment

wb = load_workbook('測試表格.xlsx')

if __name__ == '__main__':
    ws = wb.active
 
    c_style = Font(size=20, bold=True, italic=True, color='ff0000')

    ws['A1'].font = c_style

    wb.save('example.xlsx')

運行結果如下所示,注意 A1 單元格相關變化。在這里需要注意代碼中只要存在一處錯誤,新的樣式就不會起到作用。

Python怎么用openpyxl模塊操作Excel

其它內容你可自行進行擴展,例如設置對齊方式

ws['B1'].alignment = Alignment(horizontal='center', vertical='center')

Python怎么用openpyxl模塊操作Excel

行高,列寬,單元格合并與取消合并,這些內容由你自行完成。

關于“Python怎么用openpyxl模塊操作Excel”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python怎么用openpyxl模塊操作Excel”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沐川县| 岗巴县| 饶平县| 板桥市| 二连浩特市| 横山县| 新干县| 乡宁县| 叙永县| 石狮市| 玛多县| 宁都县| 湘西| 抚顺市| 垦利县| 阿拉尔市| 肥城市| 陇川县| 宝清县| 天门市| 同德县| 津南区| 讷河市| 陵川县| 临沭县| 怀宁县| 龙江县| 保亭| 泸定县| 钟山县| 定南县| 奉化市| 乐亭县| 固始县| 龙川县| 泸州市| 灵山县| 崇文区| 景洪市| 杭锦旗| 慈利县|