openpyxl(python操作Excel)


一、安裝

>>> pip install openpyxl

import openpyxl

二、常用操作

1、創建與保存一個工作簿

wb = openpyxl.Workbook()

wb.save("sample.xlsx")

2、獲取第一個工作表(將工作看成一個二維數組)

ws = wb.active

ws.title

ws["A1"] = 520

ws.append([1, 2, 3])

3、打開一個工作簿

wb = openpyxl.load_workbook("sample.xlsx")

4、獲取工作表名稱列表,再通過工作表名稱獲取工作表對象

sheetnames = wb.sheetnames or wb.get_sheet_names()
# ["sheet", "example", "maoyan"]

example = wb.get_sheet_by_name("example") or wb["example"]

5、創建和刪除工作表

wb.create_sheet(index=0, title="example")  # index:工作表位置 title:工作表名稱

wb.remove_sheet(wb["example"])  # 需要傳入一個工作表對象

6、定位單元格

example["A1"]  # 獲取單元格對象
example["A"]  # 獲取單元格元組(列)
example["1"]  # 獲取行單元格元組(行)

c = example["C4"]
c.offset(1, 3)  # 單元格偏移
# C+1=D,4+3=7,D7

7、'AAA'是多少?

  觀察工作表發現工作表的列索引為A-Z、AA-AZ、BA-BZ······

獲取列數字索引對應的字符格式和字符索引對應的數字格式

openpyxl.cell.cell.get_column_letter(496)
# 'SB'

openpyxl.cell.cell.column_index_from_string("SB")
# 496

8、訪問多個單元格(先行后列)

方式一:

ws["A1":"B2"]
# ((<Cell 'MaoYan'.A1>, <Cell 'MaoYan'.B1>), (<Cell 'MaoYan'.A2>, <Cell 'MaoYan'.B2>), (<Cell 'MaoYan'.A3>, <Cell 'MaoYan'.B3>))

ws["A":"B"]
# ((<Cell 'MaoYan'.A1>, <Cell 'MaoYan'.A2>, <Cell 'MaoYan'.A3>, <Cell 'MaoYan'.A4>, <Cell 'MaoYan'.A5>, <Cell 'MaoYan'.A6>, <Cell 'MaoYan'.A7>, <Cell 'MaoYan'.A8>, <Cell 'MaoYan'.A9>, <Cell 'MaoYan'.A10>), (<Cell 'MaoYan'.B1>, <Cell 'MaoYan'.B2>, <Cell 'MaoYan'.B3>, <Cell 'MaoYan'.B4>, <Cell 'MaoYan'.B5>, <Cell 'MaoYan'.B6>, <Cell 'MaoYan'.B7>, <Cell 'MaoYan'.B8>, <Cell 'MaoYan'.B9>, <Cell 'MaoYan'.B10>))

方式二:

# ws.rows、ws、columns  生成器
for
row in ws.rows: # 多行 print(row[0]) for row in ws.iter_rows(min_row=2, min_col=1, max_row=4, max_col=2): # 指定行   print(row[0])

9、拷貝工作表

wb.copy_worksheet(ws["example"])  # 工作表對象

10、個性化工作表標簽欄

ws.sheet_properties.tabColor = "FFFFFF"

11、調整行高和列寬

ws.row_dimensions[2].height = 100  # 修改行高

ws.column.dimensions["A"] .width = 20  # 修改列寬

12、合並和拆分單元格(合並拆分要一致)

ws.merge_cells("A1:C3")

ws.unmerge_cells("A1:C3")

13、凍結窗口

ws.freeze_panes = "B8"  # 指定凍結的單元格后,往下滾動,小於第行的不動,往右滾動,小於第B列的不動

ws.freeze_panes = "A1"  # 解凍,設置為A1就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM