Jak wyeksportować plik CSV do programu Excel przy użyciu Powershell

Próbuję wyeksportować pełny plik CSV do programu Excel przy użyciu Powershell. Utknąłem w punkcie, w którym używane są statyczne nazwy kolumn. Ale to nie działa, jeśli mój CSV ma ogólne nieznane nazwy nagłówków.

kroki ku reprodukcji

Otwórz swój PowerShell ISE i skopiuj i wklej następujący samodzielny kod. Uruchom goF5
„C: Windows 32 WindowsPowerShell v1.0 powershell_ise.exe”

Get-Process | Export-Csv -Path $env:temp\process.csv -NoTypeInformation

$processes = Import-Csv -Path $env:temp\process.csv 
$Excel = New-Object -ComObject excel.application 
$workbook = $Excel.workbooks.add() 

$i = 1 
foreach($process in $processes) 
{ 
 $excel.cells.item($i,1) = $process.name
 $excel.cells.item($i,2) = $process.vm
 $i++ 
} 
Remove-Item $env:temp\process.csv
$Excel.visible = $true
Co to robiSkrypt wyeksportuje listę wszystkich aktywnych procesów jako plik CSV do folderu tymczasowego. Ten plik jest tylko dla naszego przykładu. Może to być dowolny plik CSV z dowolnymi danymiCzyta nowo utworzony plik CSV i zapisuje go w katalogu$processes zmiennaTworzy nowy i pusty skoroszyt programu Excel, w którym możemy zapisywać danePowtarza wszystkie wiersze (?) I zapisuje wszystkie wartości zname ivm kolumna do ExcelaMoje pytaniaCo jeśli nie znam nagłówków kolumn? (W naszym przykładziename ivm). Jak adresować wartości, w których nie znam ich nazw nagłówków?Jak policzyć, ile kolumn ma CSV? (po przeczytaniu goImport-Csv)

Chcę tylko napisać cały CSV do Excela za pomocą Powershell

questionAnswers(6)

yourAnswerToTheQuestion