【Python】Excelのアクティブファイルへの書込や操作方法

【Python】Excelのアクティブファイルへの書込や操作方法

公開: 更新:



PythonでExcelのアクティブファイルに書き込む方法

Pythonからアクティブなexcelファイルに書き込むには、pywin32ライブラリを使用します。このライブラリはWindows上で動作しているExcelアプリケーションを操作し、現在開いているワークブックに直接データを書き込むことが可能です。

アクティブなexcelファイルとは、ユーザーが現在Excel上で開いているファイルのことです。pywin32ライブラリのwin32com.clientモジュールを使うと、実行中のExcelアプリケーションに接続して操作することが可能です。

以下のサンプルコードでは、既に開いているExcelファイルを取得し、アクティブなワークシートにデータを書き込む流れを示しています。このコードを実行する前に、pip install pywin32コマンドでライブラリをインストールする必要があるので注意してください。

import win32com.client
excel = win32com.client.GetActiveObject("Excel.Application")
wb = excel.ActiveWorkbook
ws = wb.ActiveSheet
ws.Range("A1").Value = "Pythonから書き込んだデータ"
data = [[10,20,30],[40,50,60],[70,80,90]]
for i, row in enumerate(data):
    for j, value in enumerate(row):
        ws.Cells(i+2, j+2).Value = value
print("データの書き込みが完了しました")
行番号 詳細説明
1行目 win32com.clientモジュールをインポート
2行目 実行中のExcelアプリケーションオブジェクトを取得
3行目 アクティブなワークブックを取得しwbに代入
4行目 アクティブなワークシートを取得しwsに代入
5行目 A1セルに文字列を代入
6行目 書き込むための2次元リストdataを定義
7行目 dataから行を取り出すループを定義
8行目 行内の要素を列単位で繰り返し処理
9行目 各セルに値を代入
10行目 書き込み完了のメッセージを出力

【PR】『Python』を学べる企業・個人向けのプログラミングコース

Excelのアクティブファイルの操作方法とセットアップ

Excelのアクティブファイルを操作するには環境設定を整える必要があり、pywin32やopenpyxlなど複数のライブラリをインストールし、Excelアプリケーションとの接続を確認します。Pythonからのアクセス手段はいくつかありますが、pywin32とopenpyxlがよく利用される傾向にあります。

pywin32はWindowsのCOMインターフェースを介して実行中のExcelアプリケーションを操作できるため、アクティブなファイルを直接扱えます。一方、openpyxlはファイルを直接操作するライブラリなので、開いているファイルを操作する場合はpywin32がよく使われます。

アクティブファイルを扱うときは、既に開いているファイルに他のプロセスからアクセスする競合問題が発生することがあります。Excelは他のプロセスによる変更を制限するため、方法によってはエラーが発生する場合があるので注意しましょう。

import win32com.client
import os
try:
    excel = win32com.client.GetActiveObject("Excel.Application")
    print("既存のExcelに接続しました")
except:
    excel = win32com.client.Dispatch("Excel.Application")
    excel.Visible = True
    print("新しいExcelインスタンスを作成しました")
wb = excel.Workbooks.Add()
ws = wb.ActiveSheet
ws.Range("A1").Value = "テストデータ"
file_path = os.path.join(os.path.expanduser("~"), "Desktop", "test_excel.xlsx")
wb.SaveAs(file_path)
print(f"ファイルを保存しました: {file_path}")
【実行結果】
既存のExcelに接続しました
ファイルを保存しました: C:\Users\ユーザー名\Desktop\test_excel.xlsx
行番号 詳細説明
1行目 win32com.clientをインポート
2行目 osモジュールをインポート
3行目 tryブロックを開始
4行目 実行中のExcelアプリケーションオブジェクトを取得
5行目 既存のExcel接続メッセージを出力
6行目 exceptブロックを開始
7行目 新しいExcelアプリケーションを起動してexcelに代入
8行目 起動したExcelアプリケーションを表示状態に設定
9行目 新しいExcelインスタンス作成メッセージを出力
10行目 新規ワークブックを作成しwbに代入
11行目 アクティブなワークシートを取得しwsに代入
12行目 A1セルにテキストを代入
13行目 保存先のパスfile_pathを作成
14行目 指定のパスにExcelファイルを保存
15行目 保存完了のメッセージを出力

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する