2011-11-10 9 views
0

データを取得するためのデータベースへの接続を含むExcelファイルがあります(select文を使用)。スクリプト(PS)からExcelファイルの接続文字列を更新する方法

代わりに別のサーバを照会するように、そのファイルの接続文字列を(preferrably powershell)スクリプトで更新したいとします。 exempleためだから、

: 私は更新connection.ps1 を実行するサーバA に接続Report.xlsxというファイルがあると私はそれをReport.xlsxという開いたときに、今のサーバーB.

任意のアイデアに接続しますそれをどうやってできるの?

ありがとうございました。

+0

接続にODBC(システムDNS)を使用していますか? –

+0

私は接続文字列にこれを持っています:Provider = SQLOLEDB.1;それはあなたの質問に答えますか? (ファイルはコンピュータに依存しません) – Thomas

答えて

1

ワークシートに接続(サーバー名)を保存することを許可(許可)するのはかなり簡単です。あなたのVBAコードは、セルの値に基づいて接続文字列を動的に構築できます。 (私はおそらく名前付き範囲を作成し、コード内で使用します)。

私はPowerShellを知りませんが、コードのようなものに見えることができます。

$workbook.Range("Server").Value2 = "PROD_01" 

あなたが希望する場合には隠されたワークシートを作ることができるが、それは深刻なセキュリティではありません。

+0

これまでのベストアイデアのように聞こえますが、私はそれを試してみると思います。 – Thomas

+0

このソリューションと以前に提案されたclosed xmlプロジェクトを混在させると、私が望むところに私を連れて来るかもしれませんが、もっと簡単な解決策を望んでいました。 – Thomas

-1

System.Data.Common.DbConnectionStringBuilderを使用して接続文字列を解析できます。

Powershell regex for connectionStrings?

+0

お返事ありがとうございますが、これらのスレッドではxlsxファイルの接続文字列を更新する方法が表示されません。 – Thomas

+0

値を読み取るために使用しているコードを投稿できるのは簡単でしょう。 –

+0

それは私の問題です:私は値をまだ読み書きしていません。私は私の質問でより多くの情報を提供します。 – Thomas

0

あなたはこの記事のように、PowerShellを経由してExcelを自動化する試みることができる:http://kentfinkle.com/PowershellAndExcel.aspx

Excelを自動化したくない場合は、ClosedXMLのようなものを使用して試みることができるこのSOスレッドをチェックしてくださいあなたのPowerShellスクリプト:http://closedxml.codeplex.com/

+0

これは良いスタートです!コードを少しブラウズしても、私はそれがうまくいくとは思えません。 – Thomas

関連する問題