【问题标题】:Importing csv values having multiple comma in one column in Asp.net在 Asp.net 的一列中导入具有多个逗号的 csv 值
【发布时间】:2013-05-02 17:48:07
【问题描述】:

我在导入 CSV 文件时遇到问题。当地址字段具有多个逗号分隔值时会出现问题,例如家号、街道号、城镇等。

我尝试使用http://forums.asp.net/t/1705264.aspx/1这篇文章,但由于单个字段包含多个逗号分隔值,问题没有解决。

有什么想法或解决方案吗?因为我没有找到任何帮助

谢谢

【问题讨论】:

  • 如果您使用该解决方案,那么我建议您查看如何更改拆分行的内容,并希望地址和分隔符之间存在差异
  • 这是一个常见的 ETL 问题,提供者是否可以更改分隔符或将字符串用双引号括起来?

标签: c# asp.net csv import


【解决方案1】:

不要自己拆分字符串。解析 CSV 文件并非易事,使用 str.Split(',') 会让你很头疼。尝试使用更强大的库,如 CsvHelper - https://github.com/JoshClose/CsvHelper

如果这不起作用,则文件格式可能不正确。检查以确保文本字段被正确引用。

【讨论】:

    【解决方案2】:

    您是否控制 CSV 文件的格式?您可以通过用双引号 ("") 将它们括起来来更改它以限定值。另一种选择是切换到不同的分隔符,如制表符。

    除此之外,如果地址始终采用相同的格式,您可以读取文件,然后检查每条记录并手动连接第 2、3 和 4 列。

    【讨论】:

    • 第二个选项呢?只需将这些额外的逗号视为有效的列分隔符,然后在另一个阶段将它们拼凑在一起。
    • csvhelper 非常适合我。如果我创建了 csv 文件,我还没有制作它,我可以尝试第二个选项
    【解决方案3】:

    字段是否用引号括起来?如果是这样,请拆分 "," 而不仅仅是 ,

    地址字段是在记录的开头还是结尾?如果是这样,您可以忽略前 x 逗号(如果在开头)或仅拆分正确数量的字段(如果在结尾)。

    理想情况下,如果您可以控制源文件的创建,您可以更改地址子字段或记录字段的分隔符。

    【讨论】:

      猜你喜欢
      • 2016-08-12
      • 2021-08-08
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      相关资源
      最近更新 更多