有没有办法在 C# 中解释 CSV 单元格拆分符号?
Is there a way to interpret CSV cell splitting symbol in C#?
当我开始保存 CSV 文件时,我注意到行之间并不总是以逗号 (,) 分隔,而是以分号 (;) 分隔。有没有办法在 C# 中记录它,无论它是分号还是逗号,它都应该将单元格分隔成不同的字符串。
我有一个包含 2 列的模板:名称,属性
名称非常简单,但 属性 可能包含多个以逗号分隔的值。
示例:
Name1; Property1, Property2, Property3
Name2; Property2, Property3
Name3; Property1
现在我需要了解的是:C# 是否具有识别单元格分隔符号的函数,因为它可能是 (,) 或 (;)?
而如果相同的数据用逗号表示:
Name1, Property1, Property2, Property3
Name2, Property2, Property3
Name3, Property1
我应该如何进行分离,而不至于得到比我需要的更多的列,或者这是否可能?
您可以使用 TextFieldParser class 来解析分隔文件。它有一个分隔符 属性,您可以将其设置为文件的任何分隔符:
TextFieldParser tfp = new TextFieldParser("C:\File.txt");
tfp.Delimiters = new[] {",", ";"};
var fields = tfp.ReadFields();
与 String.Split
相比,它的优势在于它只需设置一个标志即可处理带引号的字段。如果包含在引号中,它还将处理包含 CRLF 的输入。
String.Split 方法是你的朋友,它接受应该考虑拆分的参数数组。
string[] cells = line.Split(',',';')
如果您喜欢 StringSplitOptions 重载,您甚至可以排除空值。
当我开始保存 CSV 文件时,我注意到行之间并不总是以逗号 (,) 分隔,而是以分号 (;) 分隔。有没有办法在 C# 中记录它,无论它是分号还是逗号,它都应该将单元格分隔成不同的字符串。
我有一个包含 2 列的模板:名称,属性
名称非常简单,但 属性 可能包含多个以逗号分隔的值。
示例:
Name1; Property1, Property2, Property3
Name2; Property2, Property3
Name3; Property1
现在我需要了解的是:C# 是否具有识别单元格分隔符号的函数,因为它可能是 (,) 或 (;)? 而如果相同的数据用逗号表示:
Name1, Property1, Property2, Property3
Name2, Property2, Property3
Name3, Property1
我应该如何进行分离,而不至于得到比我需要的更多的列,或者这是否可能?
您可以使用 TextFieldParser class 来解析分隔文件。它有一个分隔符 属性,您可以将其设置为文件的任何分隔符:
TextFieldParser tfp = new TextFieldParser("C:\File.txt");
tfp.Delimiters = new[] {",", ";"};
var fields = tfp.ReadFields();
与 String.Split
相比,它的优势在于它只需设置一个标志即可处理带引号的字段。如果包含在引号中,它还将处理包含 CRLF 的输入。
String.Split 方法是你的朋友,它接受应该考虑拆分的参数数组。
string[] cells = line.Split(',',';')
如果您喜欢 StringSplitOptions 重载,您甚至可以排除空值。