ログエントリを含むCSVファイルのフォルダがあります。 CSVの各エントリについて、RiskプロパティがLowでなくNoneでない場合、私はそれを蓄積CSVオブジェクトに入れます。そこから、ファイルをに保存せずに、Excelワークブックに直接インポートします。ExcelワークブックにCSVを渡す(ファイルではない)
$CSVPaths = (Split-Path $PSCommandPath)
$AccumulateExportPath = (Split-Path $PSCommandPath)
$FileName="Accumulate"
[email protected]()
Foreach ($csv in (Get-ChildItem C:\Scripts\Nessus\Sheets |? {$_.Extension -like ".csv" -and $_.BaseName -notlike "$FileName"}))
{
$Content = Import-CSV $csv.FullName
Foreach ($Log in $Content)
{
If ($Log.Risk -ne "None" -and $Log.Risk -ne "Low")
{
$Acc+=$Log
}
}
}
$CSV = $ACC |ConvertTo-CSV -NoTypeInformation
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$Script:Excel = New-Object -ComObject Excel.Application
$Excel.Visible=$True
#$Excel.Workbooks.OpenText($CSV) What should replace this?
私はCSVファイルにファイルパスするのではなく、CSV オブジェクトを渡したりすることができますOpenText()のような方法がありますよ私は自分の変換関数を記述しているつもり?
一時ファイルとしてcsvを保存しないのはなぜですか。私には一番簡単な方法だと思う。 – FunThomas
@FunThomas私にCSVオブジェクトを渡す機能がある場合、なぜ一時ファイルを作成するのですか?それを実行できる機能がない場合は、一時ファイルを使用します。 –
スクリプト担当者がプラグインを作成しましたが、それが終わりに使用するのが簡単かどうかはわかりません。 https://blogs.technet.microsoft.com/heyscriptingguy/2015/11/25/introducing-the-powershell-excel-module-2/を参照してください。 – FunThomas