Excel で Python スクリプトを呼び出してデータ処理を自動化する方法!
Excelと言えば、まさにデータ処理分野の王者であり、誕生して30年以上経ちますが、現在も世界中で7億5千万人の愛用者がいます。そして、インターネットで有名な言語である Python の開発者はわずか 700 万人です。
Excel は世界で最も人気のあるプログラミング言語です。 Microsoft が LAMBDA 定義関数を導入して以来、Excel はプログラミング言語でアルゴリズムを実装できるようになったため、JavaScript、Java、Python と同様にチューリングが完成しました。
Excel は小規模なデータのシナリオでは不可欠なツールですが、大きなデータに直面するとやや不十分になります。
Excel テーブルには最大 1,048,576 行と 16,384 列を表示できることがわかっています。数十万行を含むテーブルを処理すると、多少の遅れが生じる可能性があります。もちろん、データ処理に VBA を使用することもできます。 Pythonを使用してExcelを操作します。
これがこの記事のテーマである Python のサードパーティ ライブラリ -xlwings です。これは、Python と Excel の間の対話型ツールとして機能し、VBA を介して Python スクリプトを簡単に呼び出して、複雑なデータ分析を実現できます。
たとえば、データを自動的にインポートする:
またはテキストをランダムに一致させる:
1. Python を Excel VBA と統合する理由は何ですか?
VBA は、Excel の組み込みマクロ言語として、自動化、データ処理、分析、モデリングなど、ほぼ何でも行うことができます。では、なぜ Python を使用して Excel VBA を統合するのでしょうか?主な理由は 3 つあります。
- VBA に習熟していない場合は、Python を直接使用して Excel 計算用の分析関数を作成できます。 VBA を使用する必要があります;
- Python は VBA よりも高速に実行され、コードの作成はより簡潔で柔軟です;
- Python には優れたサードパーティ ライブラリが多数あり、いつでも使用できるため、コーディング時間を大幅に節約できます。
Python 愛好家の方はぜひどうぞ pandas や numpy などのデータ サイエンス ライブラリはよくご存知かと思いますが、Excel のデータ分析に使用できればさらに強力になります。
2. なぜ xlwing を使用するのですか?
Python には、xlsxwriter、openpyxl、pandas、xlwings など、Excel を操作できるライブラリが多数あります。
しかし、他のライブラリと比較すると、xlwings は全体的なパフォーマンスがほぼ最高であり、xlwings は Excel マクロを通じて Python コードを呼び出すことができます。
画像は初期の Python からのものです。
ここでは、xlwing の入門的な使用法についてはあまり説明しません。
xlwings のインストールは非常に簡単です。コマンド ラインの pip を使用して簡単にインストールできます:
pip install python
xlwings をインストールした後、xlwings の Excel 統合プラグインをインストールする必要があります。インストール前にを使用するには、すべての Excel アプリケーションを閉じる必要があります。閉じないと、エラーが報告されます。
コマンド ラインで次のコマンドも入力します。
xlwings addin install
次のプロンプトは、統合プラグインが正常にインストールされたことを示します。
xlwings とプラグインがインストールされたら、この時点で Excel を開くと、ツールバーに xlwings メニュー ボックスが表示されます。これは、xlwings プラグインが正常にインストールされたことを意味します。 VBA 呼び出しのブリッジとして機能します。マッチメイキング用の Python スクリプトです。
また、メニュー バーに「開発ツール」が表示されていない場合は、マクロを使用する必要があるため、リボンに「開発ツール」を追加する必要があります。
手順は簡単です:
1. [ファイル] タブで、[カスタマイズ > オプション] に移動します。
2. [リボンのカスタマイズ] と [メイン タブ] で、[開発ツール] チェックボックスをオンにします。
三、玩转xlwings
要想在excel中调用python脚本,需要写VBA程序来实现,但对于不懂VBA的小伙伴来说就是个麻烦事。
但xlwings解决了这个问题,不需要你写VBA代码就能直接在excel中调用python脚本,并将结果输出到excel表中。
xlwings会帮助你创建.xlsm
和.py
两个文件,在.py
文件里写python代码,在.xlsm
文件里点击执行,就完成了excel与python的交互。
怎么创建这两个文件呢?非常简单,直接在命令行输入以下代码即可:
xlwings quickstart ProjectName
这里的ProjectName
可以自定义,是创建后文件的名字。
如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。
创建好后,在指定文件夹里会出现两个文件,就是之前说的.xlsm
和.py
文件。
我们打开.xlsm
文件,这是一个excel宏文件,xlwings已经提前帮你写好了调用Python的VBA代码。
按快捷键Alt + F11
,就能调出VBA编辑器。
Sub SampleCall()<br>mymodule = Left(ThisWorkbook.Name, (InStrRev(ThisWorkbook.Name, ".", -1, vbTextCompare) - 1))<br>RunPython "import " & mymodule & ";" & mymodule & ".main()"<br>End Sub<br><br>
里面这串代码主要执行两个步骤:
1、在.xlsm
文件相同位置查找相同名称的.py
文件
2、调用.py
脚本里的main()
函数
我们先来看一个简单的例子,自动在excel表里输入['a','b','c','d','e']
第一步:我们把.py
文件里的代码改成以下形式。
import xlwings as xw import pandas as pd def main(): wb = xw.Book.caller() values = ['a','b','c','d','e'] wb.sheets[0].range('A1').value = values @xw.func def hello(name): return f"Hello {name}!" if __name__ == "__main__": xw.Book("PythonExcelTest.xlsm").set_mock_caller() main()
然后在.xlsm
文件sheet1
中创建一个按钮,并设置默认的宏,变成一个触发按钮。
设置好触发按钮后,我们直接点击它,就会发现第一行出现了['a','b','c','d','e']
。
同样的,我们可以把鸢尾花数据集自动导入到excel中,只需要在.py文件里改动代码即可,代码如下:
import xlwings as xw import pandas as pd def main(): wb = xw.Book.caller() df = pd.read_csv(r"E:\test\PythonExcelTest\iris.csv") df['total_length'] = df['sepal_length'] + df['petal_length'] wb.sheets[0].range('A1').value = df @xw.func def hello(name): return f"Hello {name}!" if __name__ == "__main__": xw.Book("PythonExcelTest.xlsm").set_mock_caller() main()
好了,这就是在excel中调用Python脚本的全过程,你可以试试其他有趣的玩法,比如实现机器学习算法、文本清洗、数据匹配、自动化报告等等。
Excel+Python,简直法力无边。
参考medium文章
以上がExcel で Python スクリプトを呼び出してデータ処理を自動化する方法!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

PytorchをCentosシステムにインストールする場合、適切なバージョンを慎重に選択し、次の重要な要因を検討する必要があります。1。システム環境互換性:オペレーティングシステム:Centos7以上を使用することをお勧めします。 Cuda and Cudnn:PytorchバージョンとCudaバージョンは密接に関連しています。たとえば、pytorch1.9.0にはcuda11.1が必要ですが、pytorch2.0.1にはcuda11.3が必要です。 CUDNNバージョンは、CUDAバージョンとも一致する必要があります。 Pytorchバージョンを選択する前に、互換性のあるCUDAおよびCUDNNバージョンがインストールされていることを確認してください。 Pythonバージョン:Pytorch公式支店

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。
