天天看點

松勤軟體測試:丢掉Excel,手把手教你用Python操作Excel

python操作excel在我們的工作中經常會用到,操作用例讀取對應資訊進行接口自動化

python Excel庫對比

松勤軟體測試:丢掉Excel,手把手教你用Python操作Excel

我們發現可以操作excel的庫有很多種,我們常用的就三種方法

  • 第三方庫 xlwt/xlrd:用于生成和讀取比較老的excel檔案,比如xls格式,最大行數限制為65536行。其中xlrd是讀excel,xlwt是寫excel的庫。
  • 第三方庫 openpyxl:用于生成2010之後新的excel檔案,比如xlsx格式,最大行數限制為1048576行
  • 第三方庫 pandas:pandas是最強大的資料分析庫,自帶excel讀取和生成子產品

本文主要使用openpyxl庫

安裝openpyxl庫

pip install openpyxl -i https://pypi.douban.com/simple/           
松勤軟體測試:丢掉Excel,手把手教你用Python操作Excel

寫入Excel

寫入基本操作步驟:

  • 1.擷取workbook
  • 2.擷取 worksheet
  • 3.再然後擷取單元格,進行操作
  • 4.儲存檔案
import openpyxl

# 建立workbook對象
wb = openpyxl.Workbook()
# # 删除預設建立的一個sheet頁
ws = wb['Sheet']
wb.remove(ws)
# # 給sheet頁命名
sheetName = "松勤測試"
# 建立sheet頁
ws = wb.create_sheet(sheetName)

# 寫入方式1:(行、列、值)
ws.cell(row=1, column=1, value="python")
ws.cell(row=1, column=2).value = "java"
ws.cell(row=1, column=3).value = "松勤"
ws['D1'].value = "sq"

# 寫入方式2:append方法
row = ["python","java","松勤","sq"]
# 向工作表中 按行添加資料
ws.append(row)

# filePath 是指儲存的 excel 檔案路徑
filePath = "松勤.xlsx"
# 儲存xlsx
wb.save(filePath)           
松勤軟體測試:丢掉Excel,手把手教你用Python操作Excel

讀取Excel

import openpyxl

# fileName 這裡是指檔案路徑
fileName = "松勤.xlsx"
# 使用load_workbook()方法,以隻讀模式打開工作簿 #指定read_only=True方式,按列讀取會失敗
wb = openpyxl.load_workbook(filename = fileName,read_only = True)
# sheetName 就是 sheet頁的名稱
sheetName = "松勤測試"
# 通過 工作表名 擷取 工作表
ws = wb[sheetName]

# 讀取方式1:指定讀取 A1、B1和C1單元的内容方法
a1 = ws['A1'].value
b1 = ws['B1']
c1 = ws.cell(row=1, column=3).value
print(a1)
print(b1.value)
print(c1)
# 讀取方式2:用循環讀取指定的部分内容['A1,D1']
for row in ws['A1:D1']:
   for cell in row:
       print(cell.value)
       # 讀取方式3:
# 按行讀取 工作表的全部内容
for row in ws.rows:
   for cell in row:
       print(cell.value)
# # 按列讀取 工作表的全部内容
for column in ws.columns:
   for cell in column:
       print(cell.value)           

更新Excel

import openpyxl

# fileName 這裡是指檔案路徑
fileName = "松勤.xlsx"
#使用load_workbook()方法,以隻讀模式打開工作簿
wb = openpyxl.load_workbook(fileName)
sheetName = "松勤測試"
# 通過 工作表名 擷取 工作表
ws = wb[sheetName]
#修改對應資料
ws["A1"]="sq"

# filePath 是指儲存的 excel 檔案路徑
filePath = "松勤.xlsx"
# 儲存xlsx
wb.save(filePath)