在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;
    }
}

在CSV值C#周围加引号

    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。