2012-04-26 39 views
2

我写了一个方便的小班从各种数据源生成CSV文件。例如,我可以传入一个DataTable或一组IEnumerable对象(每个对象都有效地代表一个'行'),它会根据需要忠实地转义和分隔文件。这似乎工作得很好,但我正在想办法解决最后一块。任何简单的方法将数据导出为多种格式?

我想允许为输出到CSV的每个类型设置默认格式化程序。例如,我希望能够指定一个Locale特定的日期格式用于所有DateTime。或者,也可以选择其中一个字段是十进制数字,并且希望将其格式化为CSV中输出的货币。 (所以基本上能够为给定的数据类型定义全局格式化程序,和/或为数据中的特定列(即只是'价格'字段格式化为货币)的特定格式化程序)

我挖了.NET框架和我一直没能找到像这样的东西。这只是我需要自己推出的东西吗?如果有的话,我会在这个任务中看到有用的课程吗?

谢谢!

+0

你检查了CultureInfo – 2012-04-26 19:21:28

+0

@ shiplu.mokadd.im - 这应该如何帮助? – Oded 2012-04-26 19:22:01

+0

区域设置特定的格式由cultureinfo自动提供。这些信息在控制面板上设置。 – 2012-04-26 19:26:00

回答

3

这就是我需要自己滚动的东西吗?

是的。

我在这个任务中可能会看到哪些有用的类?

不是一类,而是一个接口 - IFormatProvider

您需要为所有想要格式化的类型实现它,并将您的实现传递给不同的格式化函数。

看看this代码项目实施例和this SO问题和答案的一些注意事项。

您可能还想看看IFormattable接口,因为它具体关于将对象格式化为字符串表示形式。

+0

非常好,感谢您的帮助...它看起来像框架实际上有两个最常见的影响IFormatProvider在System.Globalization.DateTimeFormatInfo和System.Globalization.NumberFormatInfo,我怀疑这将有助于这个努力很多 – snappymcsnap 2012-04-26 19:22:33

相关问题