【Python】 Excelデータを読み込んで転記する【Openpyxl】

Openpyxlの導入

pip install openpyxl

openpyxlライプラリーをインストールしてください。EXCELファイル操作用です。EXCEL2007以降のファイルしか操作できません。

このライブラリーは、EXCEL2003とかの旧来のファイル形式は無理です。

動画での説明

1.Openpyxlの導入
2.伝票一覧表示
3.伝票のデータを読み込む
4.データを転記する

動画のように、少しずつ追加しながら実行していくほうが良いかと思う。

サンプルスクリプト

import glob
import openpyxl

arr =list() 

#----------------
# 伝票ファイル一覧取得
#----------------
files = glob.glob(".\\売上伝票*.xlsx")
for file in files:
    print(file)

    #----------------
    # EXCELファイル読み込み
    #----------------
    wb1 = openpyxl.load_workbook(file)
    ws1 = wb1.worksheets[0]

    #----------------
    # セル読み取り
    #----------------
    #sum = ws1.cell(row=20, column=22).value
    #zei = ws1.cell(row=21, column=22).value
    #print("A: 小計 " + str(sum) + " -- 消費税 " + str(zei))

    #----------------
    # セル読み取り
    #----------------
    sum = ws1['V20'].value
    zei = ws1['V21'].value
    print("B: 小計 " + str(sum) + " -- 消費税 " + str(zei))

    #----------------
    # 配列に代入
    #----------------
    line = [sum,zei]
    arr.append(line)

#----------------
# 別のEXCELファイルに転記
#----------------
wb2 = openpyxl.load_workbook(".\\仕訳帳テンプレート.xlsx")
ws2 = wb2.worksheets[0]

for i,row in enumerate(arr):
    print(str(i+1)+"枚目・・処理中・・")
    sum = row[0]
    zei = row[1]

    r = i * 2  + 4

    #------------
    #売掛金 = 小計 + 税 をセルに代入
    #------------
    ws2.cell(row=r, column=17).value = "売掛金"
    ws2.cell(row=r, column=23).value = sum + zei   

    #-------------
    # 小計、税を売上、仮受消費税としてセルに代入
    #-------------
    ws2.cell(row=r, column=28).value = "売上"
    ws2.cell(row=r, column=34).value = sum
    ws2.cell(row=r+1, column=28).value = "仮受消費税"
    ws2.cell(row=r+1, column=34).value = zei

wb2.save(".\\仕訳帳001A.xlsx")

#----------------
# 終了
#----------------
print('終了するには何かキーを押してください…')
input()

帳票

https://keiriplus.jp/template/
https://keiriplus.jp/template/uriagedenpyo/
https://keiriplus.jp/template/shiwaketyo/

上記のテンプレートを一部変更して利用しています。

Openpyxl

openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.5 documentation

公式のドキュメントのサンプルはわかりよくて、そのままコピペで使えるものも多いと思う。

スポンサーリンク
コメント一覧
  • 名前:管理人 :

    コメントは、まだありません。