1

背景:

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

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

我已经搜索了一段时间,但没有找到任何灵丹妙药来处理这种情况。现在我想知道是否:

  1. 有没有什么好的方法来处理 CSV 文件中的分隔符定义?

  2. 有没有更好的数据交换格式,它是具有规范的不变文化:

    • 该文件是纯文本(不是像 ms excel xlsx 这样的编码文件)
    • 这是不变的文化。我不是要处理小数点分隔符,但至少在分隔符处是不变的
    • 它在电子表格应用程序中受支持,例如 Ms Excel
    • (可选)可以被OleDb引擎读取

或者,如果有的话,是否有使用平面文件进行表格数据交换的好习惯?

更新:

到目前为止,这里是给定解决方案的优缺点总结。

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

    优点:

    • 支持 Excel 和 OleDb 等多种处理器
    • 易于阅读
    • 使用记事本易于操作

    缺点:

    • 使用 ms excel 编辑时存在分隔符文化问题
    • 需要转义或处理分隔符
  2. xml:

    优点:

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

    缺点:

    • 在excel中处理时需要额外处理
    • 使用标签在 xml 中产生更多内容
  3. 杰森:

    优点:

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

    缺点:

    • 电子表格处理器(如 excel)本身不支持(需要确保)
4

4 回答 4

2

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

CSV 遇到的问题的主要好处是它没有这些问题 - 它不依赖于文化。

它也有缺点,但它们与 CSV 共享(例如,没有数据类型可言)。

于 2013-05-10T17:06:54.257 回答
2

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

  1. 语法规则很清楚。XML 标准由在数据交换方面具有丰富经验的国际委员会制定并达成一致。CSV 是一种特殊的交换格式,更多地由实践而非协议定义。
  2. 字符集规则很明确。Unicode 及其各种编码也被国际委员会标准化。
  3. 从程序中发出 XML 非常简单,并且有大量的库可以帮助解决棘手的问题,例如字符集。
  4. 读取 XML 也很简单。有大量的库可以帮助解决棘手的问题。Microsoft Excel 和大多数商业数据库将读取和写入 XML 文件。
于 2013-05-10T17:10:50.207 回答
2

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

于 2013-05-10T19:06:33.893 回答
1

您可以将整个文件读入string _var,然后应用String.Split()函数来获取一个数组,该数组指定char您需要的任何分隔符集。然后可以将数组插入到DB中,或转换为DataTable / DataView,或RangeExcel Lib对应的对象(注意:此解决方案涉及C#实现)

于 2013-05-10T17:09:49.493 回答