将 txt 文件转换为 xls,更改特定字符,将文本拆分为不同的列

Convert txt file to xls, change a specific character, split the text in different columns

更新:我的最终工作代码(没有“。”到“,”的变化)

$files = Get-ChildItem C:\Users\Alex\Desktop\test\*.txt 
foreach ($file in $files) {
    $a=(Get-item $file).BaseName
    Import-csv -Path $file  -Delimiter " " -Header "q", "Intensite", "Delta" |
    Export-xlsx -Path C:\Users\Alex\Desktop\test$a.xlsx
}

我实现了一个科学实验,它在几个 .txt 文件中给了我 很多 结果,我想为每个 .txt 文件创建一个 .xls Excel 具有正确布局的文件。

我找到了一个有效的 PowerShell 代码来将 .txt 转换为 .xls。这是:

    $files = Get-ChildItem C:\Users\Alex\Desktop\test\*.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 个数字 由 space[=28 分隔=].如何分隔 3 列中每个单元格的 3 个数字?

我假设您的输入文件格式为“由 space 分隔的 3 列”,如下所示:

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

您可以使用 PSExcel 模块,它有一个 Export-XLSX 命令。

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

您可以使用该模块格式化 Excel 文件、添加图表等等,在我链接到的 github 页面上有更多相关信息。