/ / Конвертувати файл txt в xls, змінити певний символ, розділити текст у різних стовпцях - excel, powershell, символ, пакетна обробка

Перетворити txt файл на xls, змінити певний символ, розділити текст у різних стовпцях - excel, powershell, character, batch-processing

UPDATE: мій останній робочий код (без "." До "," зміна)

$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
}

Я зрозумів науковий експеримент, який дав мені багато результатів у декількох файлах .txt, і я хотів би, щоб кожен файл .txt створив файл .xls Excel з належним розташуванням.

Я знайшов робочий код PowerShell для перетворення .txt в .xls. Ось:

    $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()"

Проте я не знаю, як:

  • замінити всі точки "." комами ",",
  • виконати макет.

В даний час результати (тільки номери) в Excel розташовані в рядку на 1 стовпці, але у мене є 3 числа на комірку розділені пропуском. Як відокремити 3 числа на комірку в 3 стовпцях?

Відповіді:

0 для відповіді № 1

Я вважаю, що ваші вхідні файли відформатовані як "3 стовпці, розділені пропуском" так:

123 456 789
789 123 456
1 2 3
4 5 6
7 8 9

Ви можете скористатись PSExcel модуль, який має a Export-XLSX команда

Get-ChildItem C:foldertxt-xl*.txt |
foreach {Import-Csv $_ -Delimiter " " -Header "Col1","Col2","Col3"} |
Export-XLSX -Path C:foldertxt-xlexport.xlsx

Ви можете відформатувати файл Excel, додати графіки та багато іншого, використовуючи цей модуль, більше інформації про це на сторінці github, до якої я зв'язався.