以CSV格式换行

时间:2015-07-30 09:16:47

标签: vb.net excel csv

我需要将哪些字符或字符组合插入到我的csv文件中,以便在Excel中启用换行符时,文本会在此时正确分解?

Private Sub removeHTMLTags(ByRef text As String)
    Dim htmlTagRegex As New Regex("<[^>]*>")
    Dim lineBreakHTMLTagRegex As New Regex("(<p>)|(<br>)|(</br>)|(</p>)")
    text = lineBreakHTMLTagRegex.Replace(text, Chr(10))
    text = htmlTagRegex.Replace(text, " ")
    text = text.Trim
End Sub

而不是Chr(10)我也尝试了vbNewLine,vbCrLf,vbCr,但每次都有相同的结果:当Excel打开文件时,这些符号被解释为正常的换行符,导致excel中的行分割
它应该是这样的:

Soll

这看起来像:

Ist

如果我想通过双击csv文件而不是通过导入对话框来加载csv文件,我该如何在第二个屏幕截图中实现样式

备注:这不是VBA,我需要在创建csv文件后打开Excel的外部vb.net控制台应用程序上执行此操作。

1 个答案:

答案 0 :(得分:1)

如果要包含CRLF控制字符,则需要用双引号括起该字段。

如果你这样做,我建议你应该在每个字段都加上双引号以保持一致。

所以你的方法看起来像这样:

Private Sub removeHTMLTags(ByRef text As String)
    Dim htmlTagRegex As New Regex("<[^>]*>")
    Dim lineBreakHTMLTagRegex As New Regex("(<p>)|(<br>)|(</br>)|(</p>)")
    text = lineBreakHTMLTagRegex.Replace(text, Chr(10))
    text = htmlTagRegex.Replace(text, " ")
    text = "" & text.Trim & ""
End Sub

更多细节可以在这里找到: http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm