【问题标题】:How to manage multiple output csv formats如何管理多种输出 csv 格式
【发布时间】:2015-05-08 04:05:52
【问题描述】:

我需要从存储在 SQL 数据库中的数据生成多种 csv 格式的输出文件。例如,我有以下数据:

Order Id | Order Date | PO Number | Total Value
100      | 06/03/2015 | 12345     | £175.50

然后我需要生成两个 csv 文件。

格式中的第一个:

orderdate,orderid,ponum,value
06-03-2015,000100,12345,17550

第二个:

order number,date,amount,ref
100,060315,£175.50,123456

所以不同的字段标题、顺序、格式、前导零、小数点等。

我的问题是 - 如果我想通过配置支持更多新的(未知的)格式而不需要编写/更新代码,我有什么选择?

我相信 XPATH 可能是一种方法(并使用一些第三方工具来管理映射等),但我对此并不熟悉,而且看起来有点笨拙。如果它是 JSON 到 CSV 映射器,那么我会更舒服。

我也想知道 SSIS 是否可以胜任这项工作 - 但我还是不太熟悉。

我可以构建一些东西(我是 C#.NET 开发人员)并使用字符串格式化程序,并为此提供一些 UI。

有什么建议、想法、经验吗?

更新:

要求的功能是可以在几个小时内支持一种新格式,由非编码人员设置,最好是通过配置文件或 UI。这可能会说是每月少量 - 但周转很重要。

【问题讨论】:

  • 您无法在 SSIS 中动态定义输出格式,但您可以在 BIML(基于代码生成 SSIS 包)中定义输出格式。您真正期望有多少种格式?每次在 SSIS 中自定义构建并没有那么慢。
  • 谢谢尼克。查看更新。
  • 你需要让它同时创建多个文件,还是像Run program > Exit program > change config file > run program again一样?
  • 是的 DrewJordan,如果您认为这是一个可能的解决方案。

标签: c# sql csv ssis datamapper


【解决方案1】:

我建议使用一些开源组件来编写 CSV 文件。请参阅here 为什么。所以你唯一需要管理的是列的顺序。您可以通过使用某种配置文件生成的动态 sql 来处理它。该文件还可以包含 csv 组件所需的信息。

【讨论】:

  • 您的链接只是对 CSV 的介绍,并没有太大帮助 :-( 动态 sql 是一个选项。理想情况下,我正在寻找能够满足 80% 需求的框架或工具。我知道我可以从头开始构建一些东西,但如果我已经有了可以基于它的东西,我不希望这样做。无论如何,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多