Powershellを使ってExcelの列をコピーしたいです。


powershellを使ってExcelから指定した列をコピーしたいです。

例えばですが、  
Excel1のA列、D列、F列だけを選んで、Excel2のA列、B列、C列に貼り付けるにはどうすればよいでしょうか？

よろしくお願い致します。




PowerShellからはCOMや.NETのオブジェクトを参照することができますので、実行するマシンにExcelが導入されている場合は

[code]

    $app = New-Object -ComObject Excel.Application
    
    // 実際のExcel処理
    $app.DisplayAlerts = $false
    ...
    
[/code]

のようにExcelのCOMインターフェイスを操作するのが良いでしょう。

上記が選択できない場合はNPOIのアセンブリ―を同梱したうえで

[code]

    // 参照ライブラリをすべて読み込む
    [System.Reflection.Assembly]::LoadFrom("NPOI.OpenXml4Net.dll");
    [System.Reflection.Assembly]::LoadFrom("NPOI.OpenXmlFormats.dll");
    [System.Reflection.Assembly]::LoadFrom("ICSharpCode.SharpZipLib.dll");
    [System.Reflection.Assembly]::LoadFrom("NPOI.dll");
    [System.Reflection.Assembly]::LoadFrom("NPOI.OOXML.dll");
    
    $wb = New-Object NPOI.XSSF.UserModel.XSSFWorkbook("excel1.xlsx");
    ...
    
[/code]

と使用することも可能です。

それぞれのライブラリで要件を実現する方法についてはPowerShellとはほとんど関係がありませんので、VBAやC#でのサンプルなどを調べてみてください。

