Powershell からの Excel データ連携タスクを自動化

Ready to get started?

Download for a free trial:

Download Now

Learn more:

Excel ADO.NET Provider

.NET アプリケーションをExcel スプレッドシートのリアルタイムデータに簡単に接続できます。Excel を使用して、アプリケーションの要となるデータを管理できます。



PowerShell から Excel に簡単に接続する方法をお探しですか? CData ADO.NET Provider for Excel は、PowerShell スクリプトの優位性を使い、シンプルで簡単に使えるADO.NET インターフェース を提供します。PowerShell スクリプトで、ADO.NET オブジェクトを使って簡単にExcel に接続して、同期、自動化、ダウンロードなどが可能!



CData ADO.NET Provider for Excel は、ADO.NET 標準インターフェースへ統合し、PowerShell のような. NET アプリケーションからExcel API へのデータ連携を可能にします。このプロバイダーは、Excel の認証および相互作用を簡単にします。このチュートリアルでは、PowerShell から直接SQL クエリを実行するための、いくつかの一般的なADO.NET オブジェクトの使い方を説明します。

クエリの実行

次の3つのステップに従って create、read、update、およびdelete (CRUD) のデータ連携コマンドを PowerShell からリアルタイムExcel に実行:

  1. プロバイダーのアセンブリをロード:

    [Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData ADO.NET Provider for Excel\lib\System.Data.CData.Excel.dll")
  2. Excel に接続:

    Authentication セクションのExcelFile には有効なExcel ファイルを設定する必要があります。

    $constr = "Excel File='C:\MyExcelWorkbooks\SampleWorkbook.xlsx';" $conn= New-Object System.Data.CData.Excel.ExcelConnection($constr) $conn.Open()
  3. ExcelDataAdapter のインスタンスを生成してSQL クエリを実行し、結果を出力:

    $sql="SELECT Name, Revenue from Sheet" $da= New-Object System.Data.CData.Excel.ExcelDataAdapter($sql, $conn) $dt= New-Object System.Data.DataTable $da.Fill($dt) $dt.Rows | foreach { Write-Host $_.name $_.revenue }

Excel データの更新

$cmd = New-Object System.Data.CData.ExcelCommand("UPDATE Sheet SET Name='Bob' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.ExcelParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()

Excel へのデータの挿入

$cmd = New-Object System.Data.CData.ExcelCommand("UPDATE Sheet SET Name='Bob' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.ExcelParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()

Excel データの削除

$cmd = New-Object System.Data.CData.ExcelCommand("UPDATE Sheet SET Name='Bob' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.ExcelParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()