Python自動化辦公之操作Excel檔案

模組匯入

import openpyxl

讀取Excel檔案

開啟Excel檔案

workbook = openpyxl。load_workbook(“test。xlsx”)

輸出表單名字

# 輸出工作簿中所有表單名字print(workbook。sheetnames)# 遍歷所有表單並輸出其名字for sheet in workbook: print(sheet。title)

建立表單

newSheet = workbook。create_sheet(“newSheetName”)

獲取表單物件

# 根據表單名獲取表單sheet3 = workbook。get_sheet_by_name(“Sheet3”)sheet4 = workbook[“newSheetName”]# 獲取當前活躍的表單worksheet = workbook。active

獲取當前表單資料行列數

# 獲取當前表單資料行數row_count = worksheet。max_row# 獲取當前表單資料列數row_count = worksheet。max_column

獲取單元格物件

selectcell = worksheet[“A1”]selectcell = worksheet。cell(row=1, column=2) # 行列號從1開始

輸出單元格資訊

單元格所在的行、列

print(selectcell。row, selectcell。column)

單元格的座標

print(selectcell。coordinate)

單元格的值

print(selectcell。value)

獲取列物件

selectcol = worksheet[“C”]

獲取列物件中某一單元格

selectcell = selectcol[“2”]

獲取連續多列組成的物件

selectcols = worksheet[“B:C”]

獲取所有列組成的物件

allcol = worksheet。cols

獲取行物件

selectrow = worksheet[“2”]

獲取行物件中某一單元格

selectcell = selectcol[“C”]

獲取連續多行組成的物件

selectcols = worksheet[“1:4”]

獲取所有行組成的物件

allrow = worksheet。rows

獲取一定範圍內的單元格組成的物件

cell_range = worksheet[“A1:C3”]

遍歷一定範圍內的單元格

for row_range in cell_range: # 先行再列 for cell in row_range: print(cell。value)

行的字母表示與數字換算

from openpyxl。utils import get_column_letter, column_index_from_stringprint(get_column_letter(2))) # 2 => Bprint(column_index_from_string(“C”)) # C => 3

編輯Excel檔案

建立workbook物件

workbook = openpyxl。Workbook()

建立表單

workbook。create_sheet(index=1, title=“第二張表”)

刪除表單

workbook。remove_sheet(workbook。get_sheet_by_name(“Sheet3”))

獲取當前活躍的表單

sheet = workbook。active

修改表單名稱

sheet。title = “設定的表單名稱”

修改單元格的值

sheet[“A1”] = “New Value”

批次寫入資料

方法一

import openpyxlfrom openpyxl。utils import get_column_letter, column_index_from_stringworkbook = openpyxl。Workbook()ws1 = workbook。create_sheet(“第一頁”)for row in range(40): ws1。append(range(17))

方法二

import openpyxlfrom openpyxl。utils import get_column_letter, column_index_from_stringworkbook = openpyxl。Workbook()ws2 = workbook。create_sheet(“第二頁”)rows = [ [“Number”, “Batch1”, “Batch2”], [2,40,30],[3,50,25], [4,30,30],[5,60,10]]for row in rows: ws2。append(row)

修改完畢儲存到檔案

workbook。save(“created。xlsx”)