我有一個包含日誌條目的CSV文件的文件夾。對於CSV的每個條目,如果風險屬性不是低而不是無,則將其放入累積CSV對象中。從那裏,我想直接導入到Excel工作簿,而不必將CSV保存到文件。將CSV傳遞到Excel工作簿(不是來自文件)
$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?
有沒有像OpenText()一個方法,讓我傳遞一個CSV 對象而不是文件路徑到一個CSV文件還是我將不得不寫我自己轉換功能?
爲什麼你不想將csv保存爲臨時文件?對我來說似乎是最簡單的方法。 – FunThomas
@FunThomas因爲如果有一個函數允許我傳遞一個CSV對象,爲什麼我應該創建一個臨時文件?如果沒有可以做到的功能,那麼我將使用臨時文件。 –
腳本編寫人員爲此編寫了一個插件,但我不知道在一天結束時是否更容易使用。請參閱https://blogs.technet.microsoft.com/heyscriptingguy/2015/11/25/introducing-the-powershell-excel-module-2/ – FunThomas