【问题标题】:Import CSV file with escaped quotes via "Table Data Import Wizard" of MySQL Workbench通过 MySQL Workbench 的“表数据导入向导”导入带有转义引号的 CSV 文件
【发布时间】:2020-01-18 06:39:34
【问题描述】:

我有一个包含以下内容的 CSV

160,Some String,"Some description ""for a text"", which can't be imported",2,263,10000

MySQL Workbench 的表数据导入向导 似乎无法处理双引号。我尝试使用 \" 和 """ 但每次都失败了

错误
未处理的异常:列表索引超出范围
检查日志以获取更多详细信息。

那么是否有可能将 CSV 内容更改为 MySQL Workbench 理解的转义字符?我可以用它来调整我的 VBA 脚本(就是这个想法)。

我正在使用 MySQL Workbench 8.0(8.0.17 build 14960816)。

编辑:

这是一个示例 CSV 内容,其中导入失败。

160,160,Lorem,"Lorem, ipsum, lorem ""Lorem ipsum"". Lorem, ipsum, Lorem ipsum.",2,263,10000
170,170,Ipsum,"Lorem ""Lorem ipsum"" Lorem 37,5°C Ipsum. Lorem ipsum",3,361,10000

【问题讨论】:

  • 内容是单列吗?
  • @James:结构类似于id,name,information,level,rank,release。所以带有转义引号的字符串在一个列中:Some description "for a text", which can't be imported
  • 好的,所以在 excel 中,记录只放在 A 列?如果是这样,您是否尝试过文本到列并尝试过?或者只是分享示例 csv 格式,以便查看。
  • 如果数据按列分隔,它对我来说很好。
  • 有一个VBA脚本,将数据写入不同的列。然后将工作表导出为 CSV。如果使用 Excel(没有数据导入工具)打开此 CSV,则数据确实在一列中。我在问题中添加了一个示例。我想肯定是"和,的组合,但我还没想通。

标签: mysql excel vba csv mysql-workbench


【解决方案1】:

如果我使用此命令导出为 CSV

workbookExport.SaveAs Filename:=CSVFilename, FileFormat:=xlCSV, local:=True

现在可以了。通过local:=True 使用我的区域分隔符;。因此,我不再有转义引号"" 和分隔符, 的问题。问题发生在以下情况:

在引用的文本之间,例如

"Lorem ipsum""Lorem ipsum"" lorem ipsum, lorem ipsum"

有一个转义的文本序列(Lorem Ipsum)。之后有一个逗号(,),但这仍然在引用的文本之间。

这里系统在列和引用文本中的逗号之间使用默认限制器,。使用另一个分号; 作为分隔符解决了这个问题,因为他现在可以区分各个列。

如果您将 xls(x) 导出到 CSV,分号似乎是我设置区域的默认分隔符。但是对于我的 VBA 导出,我需要进行上述更改。

【讨论】:

  • 是的,感谢您指出这一点。使用 ”;”作为分隔符而不是“,”似乎也为我解决了这个问题。干杯!
猜你喜欢
  • 1970-01-01
  • 2019-03-18
  • 2015-12-30
  • 2017-10-25
  • 2016-03-25
  • 2019-06-13
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多