从Excel到MySQL

时间:2016-04-04 01:43:46

标签: mysql csv encoding

我有一个MySQL表,由本地文件夹中的CSV输入填充。我通过将Excel工作表导出为.txt格式来创建CSV,添加逗号分隔符,并将编码更改为UTF-8,因为在插入从Excel直接导出的CSV之前我遇到了错误。

问题是:是否可以跳过手动将导出的CSV文件更改为TXT并将其编码为UTF-8文件的步骤?我想到的目标是直接从Excel - 或者可能用脚本 - 将UTF-8 CSV导出到文件夹中。

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

可能Excel to CSV with UTF8 encoding重复,您可以在那里查看答案。

我不确定任何答案确实给出了解决问题的权威/简明的编程方式。如果使用VBA是一个选项,请查看这篇文章,它提供了一个非常完整的解决方案:http://www.cpearson.com/excel/ImpText.aspx

如果没有,你可以详细说明Sebastian Godelet在评论中暗示的解决方案(在上面的SO链接上查看!)。我会在脚本中执行以下步骤:

  1. 导出到txt
  2. 使用iconv将utf-16转换为utf-8
  3. 使用sed将标签转换为逗号
  4. 我无法找到1的非VBA非GUI解决方案,但只需执行2和3就可以完成

    iconv -f utf-16 -t utf-8 file.txt | sed $'s/\t/  /' newfile.txt
    

    其中$是解释制表符的bash方式(如果使用另一个shell,可能有另一种方法可以正确解释字符串)。对于1,如果导出为txt,则可以从excel直接导出到utf-16 txt,然后对文件夹中的每个文件运行。