pythonの自動化では、複数の従業員を追加するなど、データファイルに対する操作が頻繁に発生しますが、従業員データをpythonファイルに直接書き込むと、作業負荷が大きくなるだけでなく、将来同様のバッチデータ操作が再び発生した場合は、次のように書き込まれます。 pythonファイル?
この問題に対処するには、データをexcelファイルに書き込んで、excelファイルを操作することができます。これは完璧なソリューションです。
この記事では、Excelでのpythonの操作についてのみ紹介します。
xlrdライブラリをインストールします
xlrdライブラリの公式アドレス:https://pypi.org/project/xlrd/
pip install xlrd
著者は、インストール時にpip3 installxlrdを使用しました
理由:python2とpython3を同時にインストールしました
pipを使用する場合、ライブラリはデフォルトでpython2にインストールされ、python3で直接呼び出すことはできません。
それで、インストールにpipまたはpip3を使用する必要がありますか?
Python2のみがシステムにインストールされている場合、pipのみを使用できます。
Python3のみがシステムにインストールされている場合は、pipまたはpip3のいずれかを使用でき、2つは同等です。
Python2とPython3の両方がシステムにインストールされている場合、pipはデフォルトでPython2によって使用され、pip3はPython3によって使用されます。
Xlrdライブラリの簡単な使用
例として次のexcelファイルを取り上げます
ファイル名はデモで、ワークシート1とワークシート2という名前の2つのシートがあります。
ワークシート1には次のデータがあります
使いやすい
# coding=utf-8import xlrd
# ファイルを開く
data = xlrd.open_workbook('file/demo.xlsx')
# ワークシートを見る
data.sheet_names()print("sheets:"+str(data.sheet_names()))
# ファイル名でワークシートを取得する,ワークシート1を取得
table = data.sheet_by_name('作業スケジュール1')
# データを印刷する.sheet_names()戻り値はリストであり、ワークシート1はリストにインデックスを付けることによって取得されていることがわかります。
# table = data.sheet_by_index(0)
# 行と列の数を取得します
# 行数:テーブル.nrows
# 列数:テーブル.ncols
print("行の総数:"+str(table.nrows))print("列の総数:"+str(table.ncols))
# 行全体の値と列全体の値を取得します。返される結果は配列です。
# 行全体の値:テーブル.row_values(start,end)
# 列全体の値:テーブル.col_values(start,end)
# パラメータstartは、印刷を開始する番号です。
# endはその位置への印刷の終わりであり、デフォルトはnoneです。
print("行全体の値:"+str(table.row_values(0)))print("列全体の値:"+str(table.col_values(1)))
# セルの値を取得します。たとえば、セルB3の値を取得します。
cel_B3 = table.cell(3,2).value
print("3行目と2列目の値:"+ cel_B3)
実行後の結果
プロジェクトで使用
すべてのデータを取得する
# coding=utf-8import xlrd
def read_xlrd(excelFile):
data = xlrd.open_workbook(excelFile)
table = data.sheet_by_index(0)for rowNum inrange(table.nrows):
rowVale = table.row_values(rowNum)for colNum inrange(table.ncols):if rowNum 0 and colNum ==0:print(int(rowVale[0]))else:print(rowVale[colNum])print("---------------")
# 判断がIDをフォーマットすることである場合
# print("書式なしIDデータ:")
# print(table.cell(1,0))
# 結果:数:1001.0if __name__ =='__main__':
excelFile ='file/demo.xlsx'read_xlrd(excelFile=excelFile)
結果
プロジェクトで使用する場合は、contentメソッドを少し変更できます。すべてのデータを取得したら、データの各行を配列として返します。
# coding=utf-8import xlrd
def read_xlrd(excelFile):
data = xlrd.open_workbook(excelFile)
table = data.sheet_by_index(0)
dataFile =[]for rowNum inrange(table.nrows):
# ヘッダーを削除する場合
if rowNum 0:
dataFile.append(table.row_values(rowNum))return dataFile
if __name__ =='__main__':
excelFile ='file/demo.xlsx'print(read_xlrd(excelFile=excelFile))
結果
上記は、PythonでExcelを読み取る方法の詳細な内容です。PythonでExcelを読み取る方法の詳細については、ZaLou.Cnの他の関連記事に注意してください。
Recommended Posts