【问题标题】:Import CSV to class structure as the user defines将 CSV 导入到用户定义的类结构中
【发布时间】:2010-05-28 21:47:03
【问题描述】:

我有一个联系人管理程序,我想提供导入 csv 文件的功能。问题是不同的数据源以不同的方式对字段进行排序。我想为用户编写一个界面来告诉它字段顺序以及如何处理异常。

这是许多可能的字段顺序之一的示例行: "ID#","Name","Rank","Address1","Address2","City","State","Country","Zip","Phone#","Email","加入日期" ,"赞助商 ID","赞助商名称" "Z1234","Call, Anson","STU","1234 E. 6578 S.","","Somecity","TX","United States","012345","000-000-0000" ,"someemail@gmail.com","5/24/2010","z12343","量子独立"

请注意,在一个数据字段“姓名”中,有一个逗号来分隔姓氏和名字,而另一个则没有。

我的计划是为每个字段(即 ID、姓名、城市等)设置一行,并声明“导入到”和带有选项的列表框,例如:不导入、业务>加入日期、名字、压缩 并且程序将它们识别为对象的属性...

我还希望用户能够记录预设的现场订单,以便他们可以将它们重新用于来自同一下载源的 csv 文件。

然后我还需要它来检查是否存在 all ready 的记录(是否有 Anson Call all ready 的记录?)并允许用户告诉它如果有记录该怎么办(即邮寄地址可能有变化,因此如果该字段已填写,请覆盖它,或者此邮寄地址无效,请保留此人的当前数据不变,覆盖其余数据。

虽然我有能力编写此代码……但我对此并不感到兴奋,我想知道是否有工具或工具集可以随时执行大部分此功能……

我希望这是有道理的......

【问题讨论】:

    标签: database vb.net csv


    【解决方案1】:

    有标题行吗?

    通常在 CSV 文件中,第一行是标题。

    如果是这样,您可以使用标题行来确定顺序,只需列出列名,并且仅在列名不匹配时提示用户。(然后可以将其自动添加到预定义列表中)。

    编辑:

    即使标题不存在,添加一个也很简单。该文件可以手动编辑。或者在您的程序中让用户定义它(从您的预定义列表中)

    【讨论】:

    • 是的,但并非所有标题都相同,即地址1,邮寄地址,大写没有大写......(但通常会有一个标题行......关键是它们是可变的虽然....我并不是说我做不到我只是想知道已经完成了多少...
    • 是的,这就是为什么我说您可以使用预定义的列表,例如“地址 1”、“邮寄地址”等,都将映射到同一个字段。任何与此列表不匹配的列,都会提示用户,然后您只需将其添加到该列的列表中。
    • 好的,我明白你在说什么,但仍然可能存在当前数据与导入数据不同的情况,并且用户可能出于各种原因想要覆盖当前数据,也可能不想覆盖当前数据。我注意到很多 csv 工具,但不确定它们中的任何一个是否真的能帮助我,但很好奇是否有东西可以处理所有这些异常(有很多......)。
    【解决方案2】:

    我找不到任何准备好的工具,也没有人回答,所以为了让问题得到回答,直到另行通知,答案是:没有。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-25
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2020-12-30
      • 2019-01-03
      相关资源
      最近更新 更多