以下代码是我创建csv文件的代码。 csv的创建没有问题,但是当csv转换为文本文件时,它们会在值的开头和结尾之间加上引号。 EX:在CSV文件中,值为:Jham,在文本文件中应该是:“Jham” - 我该如何管理它?有人可以帮忙吗?
listofValue = ZipFileStr & "," & Img1Val & "," & Img2Val & "," & RExVal & "," & BundleNo & "," & BundleNo & "," & URNVal & "," & PromocodeVal & "," & ZipFileStore & "," & SNumVal & "," & DpackVal & "," & ArrivalDate & "," & CompleteDateTwo & "," & KidPCVal & "," & MDBName
Dim PathX As String = TempPath & "\"
If Not IO.Directory.Exists(PathX) Then
MkDir(PathX)
End If
Dim sampleX As String = PathX & ZipFileStr & "P.csv"
Dim outFile As IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(sampleX, True)
outFile.WriteLine(listofValue)
outFile.Close()
答案 0 :(得分:0)
首先,在发布代码段时,请将其格式化以便于阅读。我已经为你修好了。
其次,在CSV文件和文本文件之间没有“转换”之类的东西。 CSV只是纯文本。如果文本包含记录和字段分隔符,则它是CSV文件,否则不是。无论如何都是纯文本。
关于这个问题,我建议写一个带引号值的CSV:
Dim line = String.Format("""{0}"",""{1}"",""{2}""",
firstValue,
secondValue,
thirdValue)
String.Format的使用,或者在VB 2015中,字符串插值使代码更具可读性。至于在文字字符串中放置双引号,您只需使用另一个双引号将其转义。您也可以使用ControlChars.Quote
字段:
Dim line = String.Format("{0}{1}{0},{0}{2}{0},{0}{3}{0}",
ControlChars.Quote,
firstValue,
secondValue,
thirdValue)
请注意,通常只有引用的文本值,而不是数字和日期等。这是因为引用的主要原因是允许值包含分隔符,即逗号或换行符。如果您的值都没有包含分隔符,那么您可以安全地省略引号。
编辑:作为一个例子,我可以将DataTable
写入CSV文件,其中第一列和第四列包含String
值,第二列包含数字,第三列包含{{ 1}}值。
Date