我是靠谱客的博主 虚拟酸奶,最近开发中收集的这篇文章主要介绍C#编程-CSV文件读写,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    class FilesCSV
    {
        private static char quotechar = ',';
        public static void WriteCSV(string filePathName, List<string[]> rows, bool append)
        {
            StreamWriter fileWriter = new StreamWriter(filePathName, append, Encoding.Default);
            foreach (string[] cells in rows)
            {
                StringBuilder buffer = new StringBuilder();
                for (int i = 0; i < cells.Length; ++i)
                {
                    string str = cells[i].Replace(""", "").Trim();
                    if (str == null)
                        str = "";
                    if (str.IndexOf(",") > -1)
                    {
                        str = """ + str + """;
                    }
                    buffer.Append(str);
                    if (i != cells.Length - 1)
                        buffer.Append(quotechar);
                }
                fileWriter.WriteLine(buffer.ToString());
            }
            fileWriter.Flush();
            fileWriter.Close();
        }
        public static List<string[]> ReadCSV(string filePathName)
        {
            StreamReader fileReader = new StreamReader(filePathName, Encoding.Default);
            string rowStr = fileReader.ReadLine();
            // "a,1",b,c     // ""a,1","b,1,2","c,cc",ddd"
            List<string[]> rowList = new List<string[]>();
            while (rowStr != null)
            {
                List<string> cellVals = getStrCellVal(rowStr);
                string[] cells = new string[cellVals.Count];
                for (int i = 0; i < cellVals.Count; i++)
                {
                    cells[i] = cellVals[i];
                }
                rowList.Add(cells);
                rowStr = fileReader.ReadLine();
            }
            fileReader.Close();
            return rowList;
        }
        private static List<string> getStrCellVal(string rowStr)
        {
            List<string> cellList = new List<string>();
            while (rowStr != null && rowStr.Length > 0)
            {
                string cellVal = "";
                if (rowStr.StartsWith("""))
                {
                    rowStr = rowStr.Substring(1);
                    int i = rowStr.IndexOf("",");
                    int j = rowStr.IndexOf("" ,");
                    int k = rowStr.IndexOf(""");
                    if (i < 0) i = j;
                    if (i < 0) i = k;
                    if (i > -1)
                    {
                        cellVal = rowStr.Substring(0, i);
                        if ((i + 2) < rowStr.Length)
                            rowStr = rowStr.Substring(i + 2).Trim();
                        else
                            rowStr = "";
                    }
                    else
                    {
                        cellVal = rowStr;
                        rowStr = "";
                    }
                }
                else
                {
                    int i = rowStr.IndexOf(",");
                    if (i > -1)
                    {
                        cellVal = rowStr.Substring(0, i);
                        if ((i + 1) < rowStr.Length)
                            rowStr = rowStr.Substring(i + 1).Trim();
                        else
                            rowStr = "";
                    }
                    else
                    {
                        cellVal = rowStr;
                        rowStr = "";
                    }
                }
                if (cellVal == "") cellVal = " ";
                cellList.Add(cellVal);
            }
            return cellList;
        }

    }

 

最后

以上就是虚拟酸奶为你收集整理的C#编程-CSV文件读写的全部内容,希望文章能够帮你解决C#编程-CSV文件读写所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部