【C#】C#读取CSV表格数据
C#读取CSV格式的表格数据
csv表格也就是逗号分割类型的数据,可以直接将csv文件后缀改为txt,就能看到txt格式的数据,里面所有的单元数据都是用逗号进行分割的。 话不多说,直接上代码,下面是读取csv数据的代码,可以直接用(unity工程中),根据个人情况将读取出的数据进行自己需要的操作。
public class ReadCsv { public List<string[]> MyCSV; //你想要的csv转换后的数据 [ContextMenu("输入语言表格")] public void TestImportAllLanguage() { TextAsset binAsset = Resources.Load<TextAsset>("LanguageData_Test"); //将你的csv表格,或者转换后缀的txt格式文件放在Resources文件夹下 MyCSV = ReadCSV(binAsset.text); } /// <summary> /// Separator 为表格中的单元分隔符 /// </summary> /// <param name="Text"></param> /// <param name="Separator"></param> /// <returns></returns> public static List<string[]> ReadCSV(string Text, char Separator = ,) { int i = 0; List<string[]> list = new List<string[]>(); while (i < Text.Length) { string[] array = ParseCSVline(Text, ref i, Separator); if (array == null) { break; } list.Add(array); } return list; } private static string[] ParseCSVline(string Line, ref int iStart, char Separator) { List<string> list = new List<string>(); int length = Line.Length; int num = iStart; bool flag = false; while (iStart < length) { char c = Line[iStart]; if (flag) { if (c == ") { if (iStart + 1 >= length || Line[iStart + 1] != ") { flag = false; } else if (iStart + 2 < length && Line[iStart + 2] == ") { flag = false; iStart += 2; } else { iStart++; } } } else if (c == || c == Separator) { AddCSVtoken(ref list, ref Line, iStart, ref num); if (c == ) { iStart++; break; } } else if (c == ") { flag = true; } iStart++; } if (iStart > num) { AddCSVtoken(ref list, ref Line, iStart, ref num); } return list.ToArray(); } private static void AddCSVtoken(ref List<string> list, ref string Line, int iEnd, ref int iWordStart) { string text = Line.Substring(iWordStart, iEnd - iWordStart); iWordStart = iEnd + 1; text = text.Replace("""", """); if (text.Length > 1 && text[0] == " && text[text.Length - 1] == ") { text = text.Substring(1, text.Length - 2); } list.Add(text); } }