C# 表格数据交换格式

C# 表格数据交换格式,c#,json,xml,csv,format,C#,Json,Xml,Csv,Format,背景: 我在Asp.Net(C#)web应用程序中使用了CSV作为数据交换格式。该文件通常用于批量上传请求。到目前为止,它工作得很好,而且仍然有效 然而,在研究文化的过程中,我们发现csv文件存在许多问题。最大的问题之一是分隔符是由区域设置决定的。当用户在Ms Excel中编辑文件时会发生这种情况。例如,分隔符在美国是逗号,在欧洲的某些地区是分号 我已经找了一段时间了,我还没有找到任何银弹来处理这样的案件。现在我想知道: 有什么好方法可以处理CSV文件中的分隔符定义吗 是否有更好的符合规范的数据

背景:

我在Asp.Net(C#)web应用程序中使用了CSV作为数据交换格式。该文件通常用于批量上传请求。到目前为止,它工作得很好,而且仍然有效

然而,在研究文化的过程中,我们发现csv文件存在许多问题。最大的问题之一是分隔符是由区域设置决定的。当用户在Ms Excel中编辑文件时会发生这种情况。例如,分隔符在美国是逗号,在欧洲的某些地区是分号

我已经找了一段时间了,我还没有找到任何银弹来处理这样的案件。现在我想知道:

  • 有什么好方法可以处理CSV文件中的分隔符定义吗

  • 是否有更好的符合规范的数据交换格式:

    • 文件为纯文本(不是像ms excel xlsx那样的编码文件)
    • 这是不变的文化。我的意思不是要处理十进制分隔符,而是至少在分隔符处保持不变
    • 它在电子表格应用程序(如Ms Excel)中受支持
    • (可选)可由OleDb引擎读取
  • 或者,如果有的话,是否有使用平面文件进行表格数据交换的良好实践

    更新:

    到目前为止,这里总结了给出的解决方案的优缺点

  • CSV(通常也用于表示分隔的平面文件):

    优点:

    • 由许多处理器支持,如Excel和OleDb
    • 易读
    • 使用记事本易于操作
    缺点:

    • 使用ms excel编辑时存在分隔符区域性问题
    • 需要转义或处理分隔符字符
  • Xml:

    优点:

    • 由许多处理器支持,如Excel和xml序列化程序
    • 使用记事本易于操作
    • 表示结构格式
    缺点:

    • 在excel中处理时需要额外处理
    • 使用标记在xml中生成更多内容
  • Json:

    优点:

    • 表示结构格式
    • 使用记事本易于操作
    缺点:

    • excel等电子表格处理程序不支持本机功能(需要确保)

  • CSV的一个简单替代品是——它是一种非常简单的格式,在不同的平台上有很多支持

    CSV的主要好处在于它没有这些问题——它不依赖于文化


    它也有缺点,但这些缺点是与CSV共享的(例如,没有数据类型可供提及)。

    CSV的一个简单替代品是——它是一种非常简单的格式,在不同的平台上有很多支持

    CSV的主要好处在于它没有这些问题——它不依赖于文化


    它也有缺点,但这些缺点是与CSV共享的(例如,没有数据类型)。

    您可以将整个文件读入
    string\u var
    ,然后应用
    string.Split()
    函数获取一个数组,指定所需的任何分隔符集
    char
    。然后可以将数组插入数据库中,或转换为与Excel库对应的
    DataTable/DataView
    ,或
    Range
    对象(注意:此解决方案与C#实现相关)

    您可以将整个文件读入
    string\u var
    ,然后应用
    string.Split()
    函数获取指定所需分隔符集的数组。然后可以将数组插入数据库中,或转换为与Excel库对应的
    DataTable/DataView
    ,或
    Range
    对象(注意:此解决方案与C#实现相关)

    XML是比CSV更好的数据交换方法

  • 语法规则很清楚。XML标准由在数据交换方面具有丰富经验的国际委员会制定和商定。CSV是一种特殊的交换格式,更多的是通过实践而不是协议来定义的
  • 字符集规则是明确的。Unicode及其各种编码也被国际委员会标准化
  • 从程序中发出XML非常简单,并且有大量库可以帮助处理棘手的问题,例如字符集
  • 读取XML也非常简单。有相当多的图书馆可以帮助解决棘手的问题。Microsoft Excel和大多数商业数据库将读取和写入XML文件

  • XML是比CSV更好的数据交换方法

  • 语法规则很清楚。XML标准由在数据交换方面具有丰富经验的国际委员会制定和商定。CSV是一种特殊的交换格式,更多的是通过实践而不是协议来定义的
  • 字符集规则是明确的。Unicode及其各种编码也被国际委员会标准化
  • 从程序中发出XML非常简单,并且有大量库可以帮助处理棘手的问题,例如字符集
  • 读取XML也非常简单。有相当多的图书馆可以帮助解决棘手的问题。Microsoft Excel和大多数商业数据库将读取和写入XML文件

  • 使用tab作为分隔符是一种简单的切换,大多数库似乎都支持读取或写入,并且可以使用Excel。

    使用tab作为分隔符是一种简单的切换,大多数库似乎支持读取或写入,并且可以使用Excel。

    这是用于C#还是Java?或者两者都有?这更多是为了处理数据类型。两者都是受欢迎的,但我希望有一个跨平台的解决方案。这是针对C#还是Java?或者两者都有?这更多是为了处理数据类型。两者都是受欢迎的,但我希望有一个跨平台的解决方案。我还没有使用JSON。它与excel一起工作吗?(过一会儿再试试)@Fendy-see:我可以