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