如何在VB.NET中写入带双引号的CSV文件
VB.NET实现带双引号的CSV输出方案
问题分析
你的代码当前输出不带双引号的原因是String.Format的格式字符串未包含双引号,同时原代码存在语法错误(wr.WriteLine的括号不匹配),需要一并修正。
实现方案
方案1:直接修改String.Format格式字符串
在VB.NET中,字符串内的双引号需要用两个连续双引号进行转义。修改格式字符串,为每个占位符前后添加双引号即可:
Dim A As String Dim B As String Dim C As String A = "GST" B = "B2B" C = "N" Using wr As New StreamWriter("D:\test.txt") ' 建议使用Using语句自动释放资源 ' 格式字符串中用""表示一个实际的" wr.WriteLine(String.Format("""{0}"",""{1}"",""{2}""", A, B, C)) wr.Flush() End Using
方案2:使用String.Join简化拼接
如果后续需要处理更多字段,用String.Join更简洁,先给每个字段包裹双引号,再用逗号连接:
Dim A As String = "GST" Dim B As String = "B2B" Dim C As String = "N" ' 先给每个值添加双引号,再用逗号拼接 Dim outputLine As String = String.Join(",", $" ""{A}"" ", $" ""{B}"" ", $" ""{C}"" ").Replace(" ", "") ' 去掉多余空格 Using wr As New StreamWriter("D:\test.txt") wr.WriteLine(outputLine) wr.Flush() End Using
方案3:LINQ批量处理(适合多字段场景)
如果有多个字段存储在集合中,用LINQ可以快速批量添加双引号:
Dim fields As List(Of String) = New List(Of String) From {"GST", "B2B", "N"} Dim outputLine As String = String.Join(",", fields.Select(Function(f) $" ""{f}"" ").ToArray()).Replace(" ", "") Using wr As New StreamWriter("D:\test.txt") wr.WriteLine(outputLine) wr.Flush() End Using
说明
- VB.NET中字符串内的双引号必须用
""转义,否则会被视为字符串的结束标记。 - 建议使用
Using语句创建StreamWriter,它会在代码块结束后自动释放文件资源,避免资源泄漏。 - 修正了原代码中
wr.WriteLine(String.Format(...))缺少右括号的语法错误。
内容的提问来源于stack exchange,提问作者Sahiwala Software
相关产品推荐
相关产品推荐

