如何将文本文件转换为列格式记录(如excel或csv)

问题描述:

在此先感谢... 我有一个文本文件,其中包含由管道'|'分隔的SQL记录。 我希望每个记录都在单独的列中。 例如文本文件包含上面的数据: -如何将文本文件转换为列格式记录(如excel或csv)

Name|address|status 
John|USA|A1, active 
Bob|UK|A3, active 
Merry|NYC|A2, active 

我想把它转换成使用批处理脚本到Excel。我不想使用CSV文件,因为有时记录(列)包含用逗号分隔的值。

+1

而是一批转换:选择在Excel中字段分隔符(一个或多个)_import_对话框有... – JosefZ

+0

阅读[导入或导出文本(.txt或.csv)文件(https://support.office .com/en-us/article/Import-or-export-text-txt-or-csv-files-5250ac4c-663c-47ce-937b-339e391393ba)并使用[Text Import Wizard](https://support.office .com/en-us/article/Text-Import-Wizard-c5b02af6-fda1-4440-899f-f78bafe41857)。 – Mofi

+0

感谢Mofi它对我很有用。 –

下面是我将如何在PowerShell中处理这个问题。获取数据,在管道上拆分,将该列包装在引号中,将其作为csv加入,然后将其保存到文件中。通过引用数据引用,即使数据中有昏迷,excel也会正确读取csv。

# $data = @("Name|address|status","John|USA|A1, active","Bob|UK|A3, active","Merry|NYC|A2, active") 
$data = Get-Content data.txt 

$results = @() 
foreach($line in $data) 
{ 
    # Split on pipe 
    $columns = $line -split '\|' 

    # Wrap each column in quotes 
    $columns = $columns | %{'"{0}"' -f $_} 

    # Rejoin the line 
    $results += $columns -join ',' 
} 

# Save to a file 
$results | Set-Content test2.csv 
+0

谢谢大家..凯夫马尔我不能把双引号和逗号手动我有几千行请建议另一个代码。 –

+0

第一行是测试数据并被注释掉。第二行将读取您的文件。代码在需要的地方放入双引号和逗号。没有关于它的手册。 – kevmar