(12)-Python3之--openpyxl模塊


1.安裝

pip install openpyxl

2.Excel操作的流程

1、打開excel,進入工作薄 workbook
2、選擇表單 Sheet

3、單元格  Cell
4、讀寫操作

3.Excel操作

首先准備已經存在的Excel表格。

3.1獲取單元格的值

from openpyxl import load_workbook
# 選擇Excel表
wb = load_workbook(r'E:\Users\Web_Core\xlstest.xlsx')
# 選擇表單
sh = wb['Sheet1']
# 獲取單元格的值,從1開始。
print(sh.cell(1,1).value)

結果:
A1

3.2寫入單元格的值

from openpyxl import load_workbook
# 選擇Excel表
wb = load_workbook(r'E:\Users\Web_Core\xlstest.xlsx')
# 選擇表單
sh = wb['Sheet1']

# 寫單元格的值
sh.cell(6,1).value = "二狗"
# 保存寫入的數據 - 整個工作薄
wb.save(r'E:\Users\Web_Core\xlstest.xlsx')

結果:

 

 3.3獲取總行數、總列數

from openpyxl import load_workbook
# 選擇Excel表
wb = load_workbook(r'E:\Users\Web_Core\xlstest.xlsx')
# 選擇表單
sh = wb['Sheet1']

rows = sh.max_row   # 總行數
print("總行數為:" + str(rows))
colums = sh.max_column  # 總列數
print("總列數為:" + str(colums))

結果:
總行數為:10
總列數為:4

3.4讀取所有的數據

from openpyxl import load_workbook

# 定義一個獲取所有數據的函數
def read_all_data():
    wb = load_workbook(r"E:\Users\Web_Core\xlstest.xlsx")  # 打開Excel
    sh = wb['Sheet1']  # 獲取表單
    cases = []  # 所有的cases用列表存放
    max_row = sh.max_row  # 獲取最大行
    max_column = sh.max_column  # 獲取最大列

   # 通過雙循環獲取所有數據
    for r in range(2, max_row + 1):  # 遍歷行
        case = {}
        for j in range(1, max_column + 1):
            key = sh.cell(row=1, column=j).value  # 遍歷列
            case[key] = sh.cell(row=r, column=j).value
        cases.append(case)  # 將一行數據放到列表

    wb.save(r"E:\Users\Web_Core\xlstest.xlsx")
    wb.close()
    return cases

# 調用函數,打印數據
all_data = read_all_data()
print(all_data)

結果:
[{'D1': 'D2', 'C1': 'C2', 'B1': 'B2', 'A1': 'A2'}, {'D1': 'D3', 'C1': 'C3', 'B1': 'B3', 'A1': 'A3'},
{'D1': 'D4', 'C1': 'C4', 'B1': 'B4', 'A1': 'A4'}, {'D1': 'D5', 'C1': 'C5', 'B1': 'B5', 'A1': 'A5'},
{'D1': 'D6', 'C1': 'C6', 'B1': 'B6', 'A1': '二狗'}, {'D1': 'D7', 'C1': 'C7', 'B1': 'B7', 'A1': 'A7'},
{'D1': 'D8', 'C1': 'C8', 'B1': 'B8', 'A1': 'A8'}, {'D1': 'D9', 'C1': 'C9', 'B1': 'B9', 'A1': 'A9'},
{'D1': 'D10', 'C1': 'C10', 'B1': 'B10', 'A1': 'A10'}]

 


免責聲明!

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



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