訪問して頂きありがとうございます。まさふくろーです。
この記事では、SQLServerからデータを抽出して、Excelに転記する方法をご紹介します。
目次
動作イメージ
データテーブルに格納されているデータをExcelファイルに転記
③データテーブルに格納されているデータ行数分、④の処理を繰り返します。
使用するサンプルデータ
使用するデータは、SQLServerのサンプルデータベース「Northwind」にある「Orders」テーブルです。
実行結果イメージ
SQLServer「Orders」テーブルの「OrderID」「ShipName」をExcelのA列、B列に転記する。
作成手順
プロジェクトの作成
UiPath Studioを起動します。
「プロセス」を選択します。
①プロジェクトの「名前」を入力⇒②プロジェクトを作成する「場所」を指定⇒③「作成」ボタンをクリックします。
フローチャートの作成
メニューバーの①「デザイン」タブをクリック⇒②「新規」をクリック⇒③「フローチャート」を選択します。
①フローチャートの「名前」を入力⇒②「作成」ボタンをクリックします。
「データベース」アクティビティのインストール
①「デザイン」タブをクリック⇒②「パッケージを管理」をクリックします。
①「すべてのパッケージ」をクリック⇒②検索ボックスに「UiPath.Database.Activities」と入力⇒③検索結果から「UiPath.Database.Activities」を選択します。
「インストール」ボタンをクリックします。
「保存」ボタンをクリックします。
「同意する」ボタンをクリックし、インストールします。
すると、「データベース」アクティビティが追加されます。
「クエリを実行」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「アプリの統合」>「データベース」>「クエリを実行」を選択します。
マウスの左クリックを押したまま、フローチャート上に移動し、ドロップします。すると、「クエリを実行」アクティビティが設置されます。(ダブルクリックでも可能です。)
「データベース接続」の設定
「クエリを実行」の「ダブルクリックして表示」の部分をダブルクリックし、一つ下の階層に移動します。
「接続を構成」ボタンをクリックします。
「接続ウィザード」ボタンをクリックします。
①「Microsoft SQL Server」を選択⇒②「OK」ボタンをクリックします。
①SQLServerの「サーバー名」を入力⇒②「ユーザー名とパスワード」を入力⇒③使用する「データベース」を選択⇒④「OK」ボタンをクリックします。
「OK」ボタンをクリックします。
「SQLクエリ」の設定
「クエリを編集」ボタンをクリックします。
①「SQL文」を入力⇒②「OK」ボタンをクリックします。
「パラメーター」ボタンをクリックします。
①パラメーターを以下のように設定⇒②「OK」ボタンをクリックします。
SQL文の中でパラメーターを使用する場合は、変数「start」「end」の前に「@」を付けます。このようにすることで、SQL文を直接編集する必要がなく、誤ってSQL文の条件を変えてしまったなどのリスクを減らすことができます。
名前(変数名)
方向
型
値
start
入力
Int32
10248
end
入力
Int32
10255
「データテーブル型」の変数の作成
フローチャート下の「変数」タブをクリックします。
以下項目を設定します。
項目名 | 設定内容 |
名前 | Dt |
変数の型 | DataTable |
スコープ | サンプル |
データテーブルとは、一時的にデータを格納しておくための入れ物です。
スコープを「サンプル」に設定すると、変数「Dt」は、フローチャート「サンプル」内であればどこでも使用可能となります。
①変数の型の「▼」部分をクリック⇒②「型の参照」を選択します。
①型の名前に「System.Data.DataTable」と入力⇒②「DataTable」を選択⇒③「OK」ボタンをクリックします。
「プロパティ」画面にて、以下項目を設定します。
項目名 | 設定内容 |
データテーブル | Dt(SQLServerから抽出したデータを一時的に保存しておくための変数) |
一番上の階層に戻る
「サンプル」の部分をクリックし、一番上の階層に戻ります。
「代入」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「代入」を選択します。
マウスの左クリックを押したまま、フローチャート上に移動し、ドロップします。すると、「代入」アクティビティが設置されます。(ダブルクリックでも可能です。)
「カウンター変数」の作成(Excelのセル位置を動的にするための変数)
フローチャート下の「変数」タブをクリックします。
以下項目を設定します。
項目名 | 設定内容 |
名前 | Count |
変数の型 | Int32(整数型) |
スコープ | サンプル |
「カウンター変数の初期値」の設定
「代入」アクティビティの左側に「Count」、右側に「1」と入力します。
解説 | Excelのセルの位置を1行目に設定(ヘッダー部分)。 |
「繰り返し(各行)」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「プログラミング」>「データテーブル」>「繰り返し(各行)」を選択します。
マウスの左クリックを押したまま、フローチャート上に移動し、ドロップします。すると、「繰り返し(各行)」アクティビティが設置されます。(ダブルクリックでも可能です。)
「コレクション」の設定
「繰り返し(各行)」の「Double-click to view」の部分をダブルクリックし、一つ下の階層に移動します。
「代入」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「ワークフロー」>「制御」>「代入」を選択します。
マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「代入」アクティビティが設置されます。
「カウンター変数」の設定
「代入」アクティビティの左側に「Count」、右側に「Count+1」と入力します。
解説 | このように設定することで、繰り返し処理が行われるたびにカウンター変数「Count」の値が1つずつ加算されていきます。 |
上記「カウンター変数の初期値」の設定で、カウンター変数「Count」の値は「1」が設定されているので、代入後のカウンター変数「Count」の値は「2」からはじまります。 |
「Excel アプリケーションスコープ」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「アプリの連携」>「Excel」>「処理」>「Excelアプリケーションスコープ」を選択します。
マウスの左クリックを押したまま、「Body」シーケンス上に移動し、ドロップします。すると、「Body」シーケンス内に、「Excelアプリケーションスコープ」アクティビティが設置されます。
「対象のExcelファイル」を指定
「…」ボタンをクリックし、転記する対象のExcelファイルを指定します。
「セルに書き込み」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「アプリの連携」>「Excel」>「セルに書き込み」を選択します。
マウスの左クリックを押したまま、「実行」シーケンス上に移動し、ドロップします。すると、「実行」シーケンス内に、「セルに書き込み」アクティビティが設置されます。
「A列のセルの位置を動的にする」設定
セル範囲に「"A" + Count.ToString」と入力します。
解説 | 「"A" + Count.ToString」とは、「A」という文字と「カウンター変数」を連結するという意味です。 |
カウンター変数は、「2」~「データテーブルに格納されている行数」まで「1」ずつ加算されるので、「"A" + Count.ToString」の結果は、「A2」「A3」「A4」「A5」・・・となります。 |
「書き込みする値」を設定
書き込みの値に「row("OrderID").ToString」と入力します。
解説 | 「row("列名").ToString」と指定することでデータテーブルから任意の項目を取得することができます。 |
データテーブルの列名は、SQLServerの「Orders」テーブルの列名と同じです。 |
|
ExcelのA列は「受注コード」項目なので、「Orders」テーブルの「OrderID」を指定します。
|
「セルに書き込み」アクティビティの設置
①「アクティビティ」タブをクリック⇒②「アプリの連携」>「Excel」>「セルに書き込み」を選択します。
マウスの左クリックを押したまま、「実行」シーケンス上に移動し、ドロップします。すると、「実行」シーケンス内に、「セルに書き込み」アクティビティが設置されます。
「B列のセルの位置を動的にする」設定
セル範囲に「"B" + Count.ToString」と入力します。
解説 | 「"B" + Count.ToString」とは、「B」という文字と「カウンター変数」を連結するという意味です。 |
カウンター変数は、「2」~「データテーブルに格納されている行数」まで「1」ずつ加算されるので、「"B" + Count.ToString」の結果は、「B2」「B3」「B4」「B5」・・・となります。 |
「書き込みする値」を設定
書き込みの値に「row("ShipName").ToString」と入力します。
解説 | 「row("列名").ToString」と指定することでデータテーブルから任意の項目を取得することができます。 |
データテーブルの列名は、SQLServerの「Orders」テーブルの列名と同じです。 |
|
ExcelのB列は「出荷先名」項目なので、「Orders」テーブルの「ShipName」を指定します。
|
フローチャートの関連付けを行う
「サンプル」の部分をクリックし、一番上の階層に戻ります。
「Start」と「クエリを実行」アクティビティの関連付け
「クエリを実行」アクティビティを選択し、マウスの左クリックを押したまま「Start」の位置に近づけると、水色の「三角」マークが表示されます。
この状態で左クリックから手を離すことによって、「Start」と「クエリを実行」アクティビティの関連付けが行われます。
「クエリを実行」アクティビティと「代入」アクティビティの関連付け
「代入」アクティビティを選択し、マウスの左クリックを押したまま「クエリを実行」アクティビティの位置に近づけると、水色の「三角」マークが表示されます。
この状態で左クリックから手を離すことによって、「クエリを実行」アクティビティと「代入」アクティビティの関連付けが行われます。
「代入」アクティビティと「繰り返し(各行)」アクティビティの関連付け
「繰り返し(各行)」アクティビティを選択し、マウスの左クリックを押したまま「代入」アクティビティの位置に近づけると、水色の「三角」マークが表示されます。
この状態で左クリックから手を離すことによって、「代入」アクティビティと「繰り返し(各行)」アクティビティの関連付けが行われます。
動作確認
メニューバーの①「デザイン」タブをクリック⇒②「実行」をクリックし、意図した動きになっているか確認を行います。
最後まで読んでいただき、ありがとうございました!