我使用Microsoft.VisualBasic.FileIO.TextFieldParser来解析 csv 文件。
我现在想将一些数据导出为 csv 格式。为了在困难的 csv 行为(引用、转义等)上保持一致,我想使用相同的类或类似的类——最好是在标准库中,这样我就可以相信它是兼容的。
我怎样才能做到这一点?
编辑:我要导出的数据是List<List<string>>
我使用Microsoft.VisualBasic.FileIO.TextFieldParser来解析 csv 文件。
我现在想将一些数据导出为 csv 格式。为了在困难的 csv 行为(引用、转义等)上保持一致,我想使用相同的类或类似的类——最好是在标准库中,这样我就可以相信它是兼容的。
我怎样才能做到这一点?
编辑:我要导出的数据是List<List<string>>
TextFieldParser
只能用于读取结构化文本文件,例如 CSV 文件。
为了写作,我建议使用File Helpers,它也可以用来读取 CSV 文件(所以可以完全替代)。
在标准 CSV 中转义的字符是 Tab、CR、LF、双引号和逗号:
char[] chars = { '\t', '\r', '\n', '\"', ',' };
if (stringField.IndexOfAny(chars) >= 0)
{
stringField = '\"' + stringField.Replace("\"", "\"\"") + '\"'; // replace " with ""
}
它可以很容易地用 Excel 测试或从DataGridView
控件中复制。