Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Excelファイル操作方法】ファイルオープンしているファイル(アクティブファイル)への書込方法

 

これまで、Pythonの代表的な外部ライブラリであるopenpyxlを使用してPythonからExcelファイルを読み書きする方法については以下のように過去に何回か記載してきました。   

 

kuku81kuku81.hatenablog.com

 

kuku81kuku81.hatenablog.com

 

 

通常のExcelファイル(xlsxファイルなど)についてはこれで問題ありませんでした。

 

ところが今回、またもやExcelファイルの読み書きで問題が発覚しました。

 

これまでは、ファイルクローズ中のファイルへの読み書きだったのですが、今回どうしてもオープン中のファイルへの読み書きが必要となりました。

 

これまで通り、openpyxlを使用してやると書き込み時に

「Permission error」

などが発生してできませんでした。

 

いろいろと調べていくうちになんとか実施する方法を見つけられたので備忘録として残しておきます。

 

 

 

1.Excelアクティブファイルへの書き込み方法

 

やり方として、pywin32ライブラリを使用するというものです。

以下、その手順になります。

 

まずはじめに、pywin32ライブラリをインストールします。

pywin32ライブラリは標準ではインストールされていないため、pipコマンドでインポートします。

 

コマンドプロンプトMacはターミナル)にて以下実施します。

 

pip install pywin32

 

次に、実際のpyファイルにて、ファイルの先頭で先程のライブラリ内にあるwin32comモジュールをインポートします。

 

 

import win32com.client

 

その後、Excelがすでに起動されている場合は、Getobjectを使用してExcelを取得します。

 

xl = win32com.client.GetObject(Class="Excel.Application")

 

そのExcelに対して、通常のExcel操作と同様に以下のように指定することでアクティブシートの「A12」へ"hello, world!"を書き込むことが出来ます。

 

xl.Range("A12").Value = "hello, world!"

 

全体としては以下のようになります。

 

import win32com.client

xl = win32com.client.GetObject(Class="Excel.Application")

xl.Range("A12").Value = "hello, world!"

 

以上がファイルオープンしているファイル(アクティブファイル)への書込方法の説明になります。

 

 

 

また、PythonSeleniumの活用に必要となりそうな内容を一覧として以下にまとめましたのでよかったらご参照ください。

 

kuku81kuku81.hatenablog.com

 

 

以下は、その中にも載っていますが、Pythonのダウンロード、インストールから簡単なExcelファイルの読み書きまでの一通りの手順を記載した記事になります。

 

 

kuku81kuku81.hatenablog.com

 

また、現在使用しているエディタですが無料にも関わらず機能が豊富なVisualStudioCodeのインストール方法などは過去記事に記載していますのでよかったらご参照ください。

 

 

kuku81kuku81.hatenablog.com

 

 

 

 

関連記事:

【Python】キーボード、キー入力判定方法 - Django Girls and Boys 備忘録

 

【selenium 備忘録】ボタンクリックで複数の新規ウインドウを開いた時新規ウインドウをアクティブにできなかった場合の対処方法例 - Django Girls and Boys 備忘録

 

【python】実行ファイル(EXEファイル)作成手順 - Django Girls and Boys 備忘録

 

【Python カレントディレクトリ取得】Excelファイル指定を使った簡単な例記載 - Django Girls and Boys 備忘録

 

【Pythonでopenpyxlを使用したExcelファイルの読み書き方法】xlsmファイル(マクロありファイル)の場合 - Django Girls and Boys 備忘録

 

【PythonでのExcelファイル読み書き方法】ファイルオープンしているファイル(アクティブファイル)への書込方法 - Django Girls and Boys 備忘録

 

【Python Selenium】Webサイトのスクレイピングなどで必要なフレーム間移動方法 - Django Girls and Boys 備忘録

 

【Python Selenium】Webサイトのスクレイピングなどで必要なフレーム間移動方法 - Django Girls and Boys 備忘録

 

【PythonからWeb操作】selenium、各ブラウザ用ドライバーの最新バージョン確認、ダウンロード場所 - Django Girls and Boys 備忘録

 

【Python Selenium】ブラウザ用ドライバーのダウンロードとインストール - Django Girls and Boys 備忘録

 

【Python Selenium】ブラウザ用ドライバーのインストール、設定とWebサイトへのアクセス方法 - Django Girls and Boys 備忘録

 

【ExcelマクロからのI.E.操作】I.E.のセキュリティに絡むエラー発生時の対応方法 - Django Girls and Boys 備忘録

 

【Python】キー入力によるプログラム終了処理、ループを抜けて次の処理へ移行する処理 - Django Girls and Boys 備忘録