/ / Konwertuj plik txt na Xls, zmień określony znak, podziel tekst w różnych kolumnach - Excel, PowerShell, znak, przetwarzanie wsadowe

Konwertuj plik txt na Xls, zmień określony znak, podziel tekst w różnych kolumnach - Excel, PowerShell, znak, przetwarzanie wsadowe

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 № 1

Zakł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.