在CSV值C#周围加引号
本文关键字:周围 加引号 CSV | 更新日期: 2023-09-27 18:01:08
我有一个方法,可以将制表符分隔的文本文件转换为CSV文件,并在有逗号的字段周围加引号。我想更改这个方法,使其在每个字段周围加上引号。
一个例子:
Convert (George, Washington,was,a,president)
至
("George","Washington","was","a","president").
如有任何帮助,我们将不胜感激。非常感谢。
以下是我的代码:
public void ConvertToCSV()
{
//converts a tab delimited text file to a csv file
string textFilePath = @"C:'Reports'file.txt";
string csvFilePath = @"C:'Reports'file.csv";
var input = File.ReadAllLines(textFilePath);
var lines = input.Select(row => row.Split(''t'));
lines = lines.Select(row => row.Select(field => field.EscapeCsvField(',', '"')).ToArray());
var csv = lines.Select(row => string.Join(",", row));
File.WriteAllLines(csvFilePath, csv.ToArray());
System.IO.File.Delete(textFilePath);
}
static class Extension
{
public static String EscapeCsvField(this String source, Char delimiter, Char escapeChar)
{
if (source.Contains(delimiter) || source.Contains(escapeChar))
return String.Format("{0}{1}{0}", escapeChar, source);
return source;
}
}
private string convertCSV(string pCSVtext)
{
string returnText = "";
pCSVtext = pCSVtext.Replace(" ", "");
string[] split = pCSVtext.Split(Convert.ToChar(","));
for (int i = 0; i < split.Length; i++)
{
returnText += "'"" + split[i].ToString() + "'"";
if(i != split.Length - 1)
{
returnText += ",";
}
}
return returnText;
}
string[] csvVals = new string[5] { "George", "Washington", "Was", "A", "President" };
public string convertCSV_Array(Array pCSVvals)
{
string returnString = "";
int i = 0;
foreach(string val in pCSVvals)
{
returnString += "'"" + val + "'"";
if (i != pCSVvals.Length - 1)
{
returnString += ",";
}
i++;
}
return returnString;
}
给定逗号分隔的字符串,例如"George,Washington,was,a,president",此函数将输出"George"、"Washington"、"was"、"a"、"president">
简单明了的
var str = "George, Washington,was,a,president";
var result = "'"" + string.Join("'",'"", str.Split(',')) + "'"";
现在的结果是:
"乔治"、"华盛顿"、"曾经"、"一位"、"总统">
str.Split
转换分隔csv分隔的字符串,然后将它们与","
连接,在每个元素之间加上双引号,然后在结果的开头和结尾加上双quopte。