【发布时间】:2020-01-18 13:12:16
【问题描述】:
我在 Excel 2016 中准备了一些数据,以便在 VBA 的帮助下导出为 CSV:
workbookToExport.SaveAs Filename:=CSVFilename, FileFormat:=xlCSV, local:=True
然后我获取 CSV,并使用 MySQL Workbench 的 Table Data Import Wizard。我来了
错误
未处理的异常:列表索引超出范围
查看日志了解更多详情。
这是样本数据,导致上述错误:
id;name;information;reference;limit;release
26;Lorem ;"Lorem ""ipsum"" Lorem ipsum.
Lorem ipsum.
Lorem „Ipsum“ lorem";Lorem ipsum;2;10000
在这里您可以看到,字符串本身在引号" 中,使用了转义引号"",并且数据跨越了多个new lines。
如果我删除新行,导入确实有效。是否有可能保留新线路?怎么样?
我读到如果你引用你的文本,你可以保留新行。但这不适用于我的情况。
我能做什么?
PS:CSV 的编码是 latin 1 (iso-8859-1) / ANSI。
【问题讨论】:
-
CSV 代表逗号分隔值,其中每一行代表一条记录。如果您需要它来保存 lorem ipsum 并保留换行符,请考虑使用更适合此的另一种数据格式。
-
@MathieuGuindon:感谢您的提示。那将是一个解决方案。 MySQL Workbench 也支持 JSON 导入。现在我必须弄清楚如何将我的工作表转换为 JSON 文件。
-
它支持 XML 吗?使用 XML 可能会更轻松,但是 YMMV
-
似乎不支持。除了我会使用另一个工具为我导入 MySQL 数据库...
-
TBH 我很惊讶 Workbench 不支持通过 ODBC 直接从 Excel 文件导入。 SQL Server Management Studio 做到了。或者,您可以使用 ADODB 连接到数据库,迭代您的行,并通过 ADODB.Command 插入记录,并使用您要插入的值进行参数化(虽然可能很慢)。
标签: excel vba csv mysql-workbench