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_string
print(get_column_letter(2))) # 2 => B
print(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 openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string
workbook = openpyxl.Workbook()
ws1 = workbook.create_sheet("第一頁")
for row in range(40):
    ws1.append(range(17))

方法二

import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string
workbook = 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)

方法三

import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string
workbook = openpyxl.Workbook()
ws3 = workbook.create_sheet("第三頁")
for row in range(5,30):
    for col in range(15,24):
        ws3.cell(column=col, row=row, value=123)

修改完畢保存到文件

workbook.save("created.xlsx")

想進一步了解編程開發相關知識,與我一同成長進步,請關注我的公眾號“松果倉庫”,共同分享宅&程序員的各類資源,謝謝!!!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發此異常。 O...
    我想起個好名字閱讀 5,429評論 0 9
  • VBA訂制工具欄 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴寫字的地方閱讀 2,266評論 0 0
  • 轉自鏈接 目錄 1.認識NPOI 2.使用NPOI生成xls文件 2.1創建基本內容 2.1.1創建Workboo...
    腿毛褲閱讀 10,675評論 1 3
  • 自從2014年開通[完美Excel]微信公眾號以來,堅持分享已經學習到的Excel和VBA知識和心得,目前已分享文...
    完美Excel閱讀 8,342評論 6 69
  • HTML標簽解釋大全 一、HTML標記 標簽:!DOCTYPE 說明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,310評論 1 41