AKTUALIZACJA: mój ostatni działający kod (bez "." Do "," zmień)
$files = Get-ChildItem C:UsersAlexDesktoptest*.txt
foreach ($file in $files) {
$a=(Get-item $file).BaseName
Import-csv -Path $file -Delimiter " " -Header "q", "Intensite", "Delta" |
Export-xlsx -Path C:UsersAlexDesktoptest$a.xlsx
}
Zdałem sobie sprawę z eksperymentu naukowego, który mi dał dużo wyników w kilku plikach .txt i chciałbym, aby każdy plik .txt tworzył plik .xls Excel z odpowiednim układem.
Znalazłem działający kod PowerShell do konwertowania .txt na .xls. Oto ona:
$files = Get-ChildItem C:UsersAlexDesktoptest*.txt
Write "Loading Files..."
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $false
$Excel.DisplayAlerts = $false
foreach ($file in $files) {
$WorkBook = $Excel.Workbooks.Open($file.Fullname)
$NewFilepath = $file.FullName -replace ".{4}$"
$NewFilepath = $NewFilepath + ".xls"
$Workbook.SaveAs($NewFilepath, 56)
}
Stop-Process -ProcessName EXCEL
$Excel.Quit()"
Jednak nie wiem, jak:
- zamień wszystkie punkty "." przecinkami ",",
- zrób układ.
Obecnie wyniki (tylko liczby) w Excelu są ułożone w linii na 1 kolumnie, ale mam 3 liczby na komórkę oddzielone spacją. Jak oddzielić 3 liczby na komórkę w 3 kolumnach?
Odpowiedzi:
0 dla odpowiedzi № 1Zakładam, że twoje pliki wejściowe są sformatowane jako "3 kolumny oddzielone spacją":
123 456 789 789 123 456 1 2 3 4 5 6 7 8 9
Możesz użyć PSExcel moduł, który ma Export-XLSX
dowództwo.
Get-ChildItem C:foldertxt-xl*.txt |
foreach {Import-Csv $_ -Delimiter " " -Header "Col1","Col2","Col3"} |
Export-XLSX -Path C:foldertxt-xlexport.xlsx
Możesz sformatować plik Excela, dodać wykresy i wiele więcej za pomocą tego modułu, jest więcej informacji na ten temat na stronie Github, z którą się łączyłem.