将数据导出为多种格式的简便方法?

时间:2012-04-26 19:08:20

标签: c# .net formatting string-formatting export-to-csv

我编写了一个方便的小类来从各种数据源生成CSV文件。例如,我可以传入DataTable或IEnumerable对象的集合(每个对象有效地代表一行'),它将忠实地转义并根据需要分隔文件。它似乎工作得很好,但我试图想出解决最后一块的最佳方法。

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

我在.NET框架周围挖掘过,但我还没能找到这样的东西。这只是我需要自己滚动的东西吗?如果有的话,我可以在这个任务中看到任何有用的课程吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

  

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

是。

  

我可能会在这个任务中看到任何有用的课程吗?

不是类,而是界面 - IFormatProvider

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

请查看this代码项目示例以及this SO问题和答案。

您可能还想查看IFormattable界面,因为它特别关于将对象格式化为字符串表示形式。