2015-06-20 136 views
0

在此先感謝... 我有一個文本文件,其中包含由管道'|'分隔的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它對我很有用。 –

回答

0

下面是我將如何在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

相關問題