質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

1回答

3320閲覧

powershell データテーブルのExcel出力について

ekTJ

総合スコア109

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2021/06/21 00:58

powershell初心者です。
下記のコードのようにデータの抽出までは問題ないのですが、出力で躓いています。
どなたか参考になるページなど教えていただけると助かります。

実現したいこと

●抽出したデータテーブルをExcelに出力、任意の位置(例.D4セルから)へ挿入したい
●列名は無しで出力させたい

困っていること

ググってみても、そもそもデータセットを任意の位置に挿入することが出来るかどうか分からなかった。

powershell

1#OracleConnectionオブジェクトの作成 2$OraConn = New-Object System.Data.OracleClient.OracleConnection($ConnectionString) 3 4#データセットの作成 5$dtSet = New-Object System.Data.DataSet 6 7#OracleDataAdapterクラスを使用して、データの取得 8$oraDa = New-Object System.Data.OracleClient.OracleDataAdapter($strSQL, $OraConn) 9 10#Fillメソッドで、データセットのテーブルに取得データを格納 11[void]$OraDa.Fill($dtSet) 12 13#ExcelWorkbookの作成 14$workBook = new-object ClosedXML.Excel.XLWorkbook 15 16#取得データをExcelに出力 17[void]$workBook.Worksheets.Add($dtSet.Tables[0],"Sheet1") 18 19#Excelの保存 20[void]$workBook.SaveAs($excelPath); 21

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

System.Data.OracleClient.OracleConnection($ConnectionString)
は私の環境では使用できないので
方法のみ伝えます。

いかに登場する<>で囲われた部分は任意の値を入れてください

$dtSet.Tables[0]ConvertTo-CSVが使用できますか?

使用できるなら話は簡単で

PowerShell

1$dtSet.Tables[0]|ConvertTo-Csv -Delimiter "`t" -NoTypeInformation|scb

でTSV生成からのクリップボード格納
あとは目的のセルにPasteすれば完了です。

上記が無理で$dtSet.Tables[0].<各プロパティ名>の指定で取得したい
全ての値が取れる場合は

$dtSet.Tables[0]|Select <プロパティ名1>,<プロパティ名2>,<プロパティ名3>...

のようにselectオブジェクトを通した後に先ほどのTSV変換貼り付けが使用できます。

いずれも無理な場合は下記を参考にPsCustomObjectの配列を生成した後
最初に提示したTSV..以下略
につなげればできますよ。

$dtSet.Tables[0].<各プロパティ名>で表現できないなら
表現できるPsCustomObjectの配列に変換してしまえばいい!!
ってことですね

PowerShell

1$dtSet.Tables[0]|%{ 2 [PsCustomObject]@{ 3 <ヘッダー1>=$_.<プロパティ> 4 <ヘッダー2>=$_.<プロパティ>.<プロパティ> 5 <ヘッダー3>=$_[<インデックス>] 6 <ヘッダー4>=$_[<インデックス>,<インデックス>] 7 } 8}|ConvertTo-Cs......以下略

投稿2021/08/06 13:47

kamikazelight

総合スコア305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問