オートメーション道場

RPAツール「Automation 360」(旧Automation Anywhere A2019) の使い方についてまとめていきます。

巨大Excelファイルのボットでの取り扱い方

巨大Excelファイルのボットでの取り扱い方

巨大なExcelファイルを扱う際に最もスピードが速い方法は何なのか?3つの方法から試してみました。

目次

 

Excelファイルを扱ういくつかの方法

Excelファイルにアクセスしてデータを扱う方法はいくつかあります。主な方法は3つです。特にファイルが大きくなってくるとパフォーマンスに大きな差が出てきます。しかし、それぞれの方法には長所/短所があるので、それを理解したうえで使い分けるのが良いでしょう。

 

  • Excel の高度な操作パッケージを使う:一番直感的な方法です。現在利用可能なExcelパッケージの中で最も多く利用可能なアクションがあります。Excelアプリケーションがインストールされていることが前提で、Excelアプリを介してファイルにアクセスします。実行スピードは、3つの中では最も遅いです。Control Room上のファイルおよびローカルファイルの両方で作動します。
  • Excel の基本操作パッケージを使う:Automation AnywhereからExcelを介さずにExcekファイルに直接アクセスをするパッケージです。Excelをインストールする必要はありませんが、使用するアクションが少なくなっています。実行スピードは速いです。Control Room上のファイルおよびローカルファイルの両方で作動します。
  • データベースパッケージを使う:3つの方法の中で最速です。ローカルまたはネットワークドライブに保存されているファイルでのみ機能し、Control Room上に保存されたファイルには使用できません。OfficeやExcelをインストールする必要はありません。

 

テストシナリオ

米国には約42,000の郵便番号がありますが、郵便番号、都市、州の並びになっている一連のデータから、特定の郵便番号 ("95164") のものの都市、州を表示するというシナリオです。

シナリオファイルはGitHub上にあります。(ZipSample.xlsx) Excelファイルの中に42,523行のデータがあり、

3つの方法で構築したボットのコアの部分は以下の通りです。

 

Excel の高度な操作パッケージ

Excelの高度な操作パッケージでExcelファイルを読み込む

 

Excel の基本操作パッケージ

Excel/Officeのインストールは不要。 

Excelの基本操作パッケージでExcelファイルを開く

 

データベースパッケージ

Access 2010再頒布化のパッケージ (32 bit) のインストールが必要。64 bit OSでも32 bitをインストールする。Excel/Officeのインストールは不要。XLSXファイルでなくXLSファイルの場合はJET DB 4.0エンジンがProviderとなる。

 

データベースパッケージでExcelファイルを開く

接続文字列 (Access Database Engine 2010 Redistributableのものを使う)

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=”(XLSXファイルへのフルパス)”;Extended Properties=”Excel 12.0 Xml;HDR=YES”

 

SQL クエリ

Select * from [Sheet1$$] WHERE Zip = 95164

 

Excelファイルの中身

Excelファイルの中身

 

実行にかかった時間

  • Excelの高度な操作パッケージ: 平均2分35秒
  • Excelの基本操作パッケージ: 平均9秒33
  • データベースパッケージ: 平均4秒

 

参考記事

 

 

オートメーション道場