背景:
我在Asp.Net(C#)Web应用程序中使用CSV作为数据交换格式。该文件通常用于批量上传请求。它一直工作到现在,它仍然有效。
然而,在研究文化时,我们发现csv文件存在许多问题。其中一个最大的问题是分离器是由区域设置决定的。当用户在Ms Excel中编辑文件时会发生这种情况。例如,分隔符在美国使用逗号,在欧洲某些地区使用分号。
我已经搜索了一段时间,我没有找到任何银弹来处理这种情况。现在我很想知道:
有没有什么好方法可以处理CSV文件中的分隔符定义?
是否有更好的数据交换格式,这是规范的不变文化:
或者,如果有的话,使用平面文件进行表格数据交换是否有好的做法?
更新
到目前为止,这里是给定解决方案的优缺点摘要。
CSV(通常也用于表示分隔的平面文件):
优点:
缺点:
XML:
优点:
缺点:
JSON:
优点:
缺点:
答案 0 :(得分:2)
简单替换为CSV可以是JSON - 这是一种非常简单的格式,在不同平台上提供了大量支持。
与CSV相关的问题的主要好处是它没有它们 - 它不依赖于文化。
它也有缺点,但它们与CSV共享(例如,没有数据类型)。
答案 1 :(得分:2)
XML是比CSV更好的数据交换方法。
答案 2 :(得分:1)
您可以将整个文件读入string _var
,然后应用String.Split()
函数来获取一个数组,指定您需要的任何分隔符集char
。然后可以将数组插入到数据库中,或者转换为与Excel Lib对应的DataTable / DataView
或Range
对象(注意:此解决方案与C#实现有关)
答案 3 :(得分:1)
使用tab作为分隔符是一个简单的开关,大多数库似乎都支持读取或写入,并且可以使用Excel。