IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Pythonでネットワーク自動化をしよう

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第25回 OpenPyXLライブラリ(5)実例① (小澤昌樹) 2024年8月

1. はじめに

みなさん、こんにちは。

前回まで、OpenPyXLライブラリの基本的な機能や操作方法について詳しく説明してきました。Excelファイルの読み込みや保存、セルへのデータの書き込み、スタイルの適用など、基礎的な操作を紹介しました。また、複数のシートを扱う方法や、条件付き書式設定など、より高度な機能についても触れてきました。

今回からは、OpenPyXLライブラリを使った実例を紹介することにしましょう。まずは、ネットワーク自動化とは直接的な関係のない、ビジネスシーンでの活用例として、売上データ管理用と在庫管理用のExcelファイルを、OpenPyXLライブラリで作成する方法を紹介します。データの入力、編集、計算、グラフ化などの操作を見てみましょう。

2. 売上データの分析

まず、売上データのExcelファイルを作成してみます。OpenPyXLを用いてワークブックとシートを作成し、ヘッダーやデータを追加してから、売上データの合計を計算して新しい列に追加し、データを視覚的に表示するための棒グラフを追加してみます。

データの入力

まず、売上データをExcelに入力します。以下のコードは、売上データをExcelファイルに書き込む例です。「売上データ」シートには、日付、製品、数、価格のヘッダーと、それに対応する各行を含み、「sales_data.xlsx」という名前のExcelファイルが作成されます。


import openpyxl

# ワークブックとシートの作成 wb = openpyxl.Workbook() ws = wb.active ws.title = "売上データ"
# ヘッダーの書き込み headers = ["日付", "製品", "数", "価格"] ws.append(headers)
# データの書き込み sales_data = [ ["2024-07-01", "製品A", 10, 999], ["2024-07-02", "製品B", 5, 1999], ["2024-07-03", "製品B", 2, 1999], ["2024-07-04", "製品A", 5, 1000], ["2024-07-05", "製品B", 1, 1999], ["2024-07-06", "製品A", 3, 999], # その他のデータあれば ] for row in sales_data: ws.append(row)
# ファイルの保存 wb.save("sales_data.xlsx")

fig01

データの編集と計算

次に、売上データの入ったExcelファイル内のデータを編集し、計算を追加してみましょう。「数」と「価格」を掛け算して合計を求めるような計算式を「合計」列として新しく追加します。


import openpyxl

# ワークブックの読み込み wb = openpyxl.load_workbook("sales_data.xlsx") ws = wb["売上データ"]
# 合計列の追加 ws["E1"] = "合計" for row in range(2, ws.max_row + 1): quantity = f"C{row}" price = f"D{row}" ws[f"E{row}"] = f"={quantity} * {price}"
# ファイルの保存 wb.save("sales_data_with_totals.xlsx")

fig02

データのグラフ化

売上データを視覚化するために、グラフを作成してみましょう。売上データを基に棒グラフを作成します。日付ごとの合計が表示される棒グラフができます。


import openpyxl
from openpyxl.chart import BarChart, Reference

# ワークブックの読み込み wb = openpyxl.load_workbook("sales_data_with_totals.xlsx") ws = wb["売上データ"]
# データ範囲の設定 data = Reference(ws, min_col=5, min_row=1, max_col=5, max_row=ws.max_row) categories = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row)
# グラフの作成 chart = BarChart() chart.add_data(data, titles_from_data=True) chart.set_categories(categories) chart.title = "売上データ" chart.x_axis.title = "日付" chart.y_axis.title = "売上"
# グラフの追加 ws.add_chart(chart, "H2")
# ファイルの保存 wb.save("sales_data_with_chart.xlsx")

fig03

3. 在庫管理

在庫管理の例を見てみましょう。初期在庫、入庫、出庫、現在在庫といった在庫関連のデータをExcelに入力し、在庫の増減を管理するものです。


import openpyxl

# ワークブックとシートの作成 wb = openpyxl.Workbook() ws = wb.active ws.title = "在庫管理"
# ヘッダーの書き込み headers = ["製品", "初期在庫", "入庫", "出庫", "現在在庫"] ws.append(headers)
# データの書き込み inventory_data = [ ["Product A", 100, 20, 5, "=B2+C2-D2"], ["Product B", 50, 10, 2, "=B3+C3-D3"], # その他のデータ ] for row in inventory_data: ws.append(row)
# ファイルの保存 wb.save("inventory.xlsx")

fig04

4. まとめ

今回は、OpenPyXLライブラリを使用して、売上データと在庫管理のExcelファイルを作成する具体的な方法を紹介しました。ネットワーク自動化には直接関係ない部分ですが、データの入力、編集、計算、そしてグラフ化などの操作を解説しました。これらで、OpenPyXLを使ったデータ操作の基本的な手順を理解していただけたかと思います。Excelファイルをプログラムから自動的に生成し、データの編集や分析を行えるようになると、業務の効率化が図れることでしょう。

次回は、いよいよネットワーク自動化に繋がるOpenPyXLの使い方を解説します。どうぞお楽しみに。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes