将 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 页面上有更多相关信息。
更新:我的最终工作代码(没有“。”到“,”的变化)
$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 页面上有更多相关信息。