概述
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文件读写所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复