2016-12-16 61 views
2

私はブックに書き込むためにopenpyxlを使用しています。しかし、そのブックを編集するには、そのブックを閉じる必要があります。開いているExcelシートに書き込む方法はありますか?コマンドラインを使用してPythonコードを実行し、セルを塗りつぶすボタンが必要です。Pythonを使用して開いているExcelファイルに書き込む方法は?

私が築いてきた現在のプロセスがファイルを閉じるには、VBAを使用して、その後、Pythonはそれを書き込み、それを再度開きます。しかし、それは非効率的です。そのため、私はオープンファイルに書き込む方法が必要です。それは同期の問題が発生しますので、

+0

あなたは、具体的openpyxl使用しますか?私は一般的に、同じものとの柔軟性のためにxlrdとxlwtを好む。 – SashaZd

+0

openpyxlを特に使う理由はありません。これまで私はVBAとPythonを同期させることができ、openpyxlはまともな仕事をしています。 xlwtやxlrdを使うのはなぜお勧めですか? –

+0

@SashaZdこれはトピックではありませんが、オプションとしてxlwtに言及しました。 Openpyxlは私に書式設定の問題を与えてくれました。その点でxlwtは良いですか? Excel形式を維持していますか? –

答えて

2

一般的に、2つの異なるプロセスが同じファイルへの書き込みをしないではないはずです。

良い方法は、親プロセス(別名VBAコード)内の既存のファイルを閉じて、Pythonスクリプトにブックの位置を通過することであろう。

Pythonスクリプトは、それを開いて、セルと出口の内容を書き込みます。 Excelファイルは、同時アクセスをサポートしていないため

+0

VBAコードはPythonコードを実行し、Excelファイルを閉じます。 Pythonコードは、その作業を行い、閉じられていた同じExcelファイルにそのコードを書き込んでから開きます。 私が作成しようとしているツールの種類は、多くのやりとりを伴い、そのたびにExcelワークブックを閉じて編集してから再度開くことは望ましくありません。 VBAコードが開いているExcelファイルに書き込むことができるように、私はPythonを使用して同じことを達成しようとしています。 –

+0

Excelブックには、2つの同時書き込みを可能にするあらゆる種類の同期プリミティブがありません。 Pythonは、VBAコードが既にファイルを開いていることを知らず、VBAコードにも同じことが適用されます。私は多くの相互作用があるかもしれないが、結果として得られる最終製品はより信頼性が高いかもしれないことに同意する。また、ファイルを複数回開いたり閉じたりするのは時間がかかるとは思いません。 –

2

ありませんこれは不可能です。

+0

COMはopenpyxlと何が関係していますか? –

関連する問題