python自動化-excelファイルの操作-openpyxlモジュール
15520 ワード
python操作excelファイル–openpyxlモジュール
前言
自動化されたテスト作業では、テスト効率を向上させ、使用例の可読性を向上させ、コードメンテナンスコストを削減するために、通常、テスト使用例とテストデータを分離し、excelはデータを格納するのに最適なファイルであるため、pythonスクリプトでexcelファイルを読み取りまたは書き込む必要があります.openpyxlモジュールの一般的な操作について説明します.間違いやアドバイスがあれば、訂正して指摘してください.
Openpyxlモジュールの使用
Openpyxlモジュールのインストールインストールコマンド:pip install openpyxl、モジュールインポートに成功するとpyファイルで を参照できます.
workbook三剣客(ワークブック、sheet、セル)の作成
workbook三剣客の常用方法 workbook 指定されたシートを開く ワークシート作成 EXCELファイルの修正内容 を保存する EXCELファイル を閉じる
worksheet ワークシートの最大行番号と列番号 を取得ある行、ある列のcellオブジェクト を取得することができる.座標(excelの行、列)に基づいてcellオブジェクト を正確に取得できる.セル書込み値 ある範囲の値 を取得する.
cell 以上で取得するセルオブジェクトから取得するセルの値 .
パッケージexcelの操作(読み取り、書き込み)
まとめ
Openpyxlモジュールはexcelの読み書き、セルのマージ、画像の挿入など多くの操作を提供し、よく使われるのは読み取りと書き込みです.の読み取り方は、セル読み取り、単行読み取り、単列読み取り、範囲内読み取りが可能なものが多い .書き込みセルは現在、単一のセルのみ書き込み可能であり、複数行の複数列を書き込みたい場合はforループに合わせて使用できます.
前言
自動化されたテスト作業では、テスト効率を向上させ、使用例の可読性を向上させ、コードメンテナンスコストを削減するために、通常、テスト使用例とテストデータを分離し、excelはデータを格納するのに最適なファイルであるため、pythonスクリプトでexcelファイルを読み取りまたは書き込む必要があります.openpyxlモジュールの一般的な操作について説明します.間違いやアドバイスがあれば、訂正して指摘してください.
Openpyxlモジュールの使用
Openpyxlモジュールのインストール
from openpyxl import load_workbook # load_workbook
workbook三剣客(ワークブック、sheet、セル)の作成
wb = load_workbook("testcase.xlsx") # excel , workbook
ws = wb["test"] # sheet , sheet
cell = ws.cell(row=1, column=1) # cell , cell ( )
workbook三剣客の常用方法
wb["test"] # test sheet
wb.create_sheet(title="test", index=1) # “test” ,
wb.save("test.xlsx")
wb.close()
print(ws.max_row, ws.max_column)
ws[1] #
ws["A"] #
ws.cell(row=1, column=1)
ws["A1"]
ws.cell(row=1, column=1, value="test") # "test"
wb.save("test.xlsx") # excel excel
ws.iter_rows(min_row=1, max_row=2, min_col=2, max_col=4, values_only=True) # , ,values_only=True , cell.value
cell.value #
パッケージexcelの操作(読み取り、書き込み)
class OperationExcel:
"""
"""
def __init__(self, excel_name, sheet_name=None):
"""
,
:param excel_name: excel
:param sheet_name:
"""
self.excel_name = excel_name
self.sheet_name = sheet_name
self.actual = OperationConfig("EXCEL", "actual").get_int_value() # actual
self.result = OperationConfig("EXCEL", "result").get_int_value() # result
def get_data(self):
"""
:return:
"""
wb = load_workbook(self.excel_name) # workbook
if self.sheet_name is None: # sheetname , sheet, sheet
ws = wb.active
else:
ws =wb[self.sheet_name]
header_data = tuple(ws.iter_rows(max_row=1, values_only=True))[0] # ,
other_data = tuple(ws.iter_rows(min_row=2, values_only=True)) # ,
test_data = []
for data in other_data: # ,
data_dict = dict(zip(header_data, data))
test_data.append(data_dict)
return test_data
def get_row_data(self, row):
"""
:param row:
:return:
"""
return self.get_data()[row-1]
def write_data(self, row, actual, result):
"""
excel
:param row:
:param actual:
:param result:
:return:
"""
wb = load_workbook(self.excel_name)
if self.sheet_name is None:
ws = wb.active
else:
ws = wb[self.sheet_name]
if isinstance(row, int) and 2 <= row <= ws.max_row:
ws.cell(row=row, column=self.actual, value=actual)
ws.cell(row=row, column=self.result, value=result)
wb.save(self.excel_name)
else:
print(" , 1 ")
まとめ
Openpyxlモジュールはexcelの読み書き、セルのマージ、画像の挿入など多くの操作を提供し、よく使われるのは読み取りと書き込みです.