【Python】openpyxlでセル範囲から値を取得し、ランダムに出力する方法

目次

経緯

PythonでExcelファイルを操作したいと思い、openpyxlを使って「A1セルからA10セルまでの値を読み取り、その中からランダムで1つを出力する」方法を学習しました。
今回は、その具体的な方法とコードの説明をまとめました。


使用するライブラリと事前準備

この処理では、以下の2つのライブラリを使用します。

  • openpyxl:Excelファイルの読み取り用
  • random:リストからランダムに値を選ぶために使用

まず、openpyxlをインストールしていない場合は、以下のコマンドを実行してください。

pip install openpyxl

サンプルコード

以下は、Excelファイル「example.xlsx」から、A1〜A10のセルの値を取得し、ランダムに1つを出力するコードです。

from openpyxl import load_workbook
import random

# Excelファイルを読み込む
workbook = load_workbook(filename='example.xlsx')
sheet = workbook.active

# A1〜A10の値をリストに格納する
rows = []
for row in sheet.iter_rows(min_row=1, max_row=10, min_col=1, max_col=1, values_only=True):
    rows.append(row[0])  # 各行の1列目だけを取り出す

# ランダムで1つ選んで出力する
random_value = random.choice(rows)
print(random_value)

コードの解説

load_workbook()でExcelファイルを読み込みます。ファイル名は任意で変更可能です。
workbook.activeで、アクティブなシートを取得します。
iter_rows()を使い、A1〜A10の範囲(1列目・1行目から10行目)をループして値を取り出します。
values_only=Trueを指定することで、セルのオブジェクトではなく値のみを取得できます。
row[0]を指定することで、1列目のセルの値だけをリストに追加しています。
random.choice()を使って、リストからランダムに1つの値を選び、出力しています。


まとめ

openpyxlを使えば、Excelの特定範囲の値を簡単に取得し、それをランダムに利用することが可能です。
今回の例では、A1〜A10の範囲から値を取得し、その中からランダムに1つを選んで表示しました。

この方法は、ランダム抽選・サンプル表示・アンケート選択肢のシャッフルなど、さまざまな用途に応用できます。
最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次