通过CSV将Excel数据导入MySQL的问题

时间:2012-06-14 21:40:53

标签: mysql excel csv import

我有12个excel文件,每个文件都包含2个字段(列)中的大量数据: id 文字

每个excel文件对文本字段使用不同的语言:西班牙语,意大利语,法语,英语,德语,阿拉伯语,日语,rusian,韩语,中文,日语和葡萄牙语。

id 字段是字母和数字的组合。

我需要将每个excel导入到不同的MySQL表中,因此每种语言都有一个表。

我正在尝试以下方式: - 将excel保存为CSV文件 - 在phpMyAdmin中导入CSV

问题是我遇到了各种各样的问题,我无法正确导入它们,可能是因为编码问题。

例如,对于阿拉伯语,我将所有内容设置为UTF-8(数据库表字段和CSV文件),但是当我执行导入时,我得到奇怪的字符而不是普通的阿拉伯字符(如果我手动复制它们,它们显示很好。)

我得到的其他问题是某些文本有逗号,并且由于CSV文件也使用逗号分隔字段,因此只要有逗号,导入的文本就会被截断。

其他问题是,当保存为CSV时,字符会搞砸(就像中文字符一样),而且我找不到告诉excel我想在CSV文件中使用哪种编码的选项。

我可以遵循任何“协议”或“规则”以确保我以正确的方式执行此操作吗?什么适用于每种不同的语言?我正在努力关注字符编码,但即便如此,我仍然会得到奇怪的东西。

也许我应该尝试使用其他方法而不是CSV文件?

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

CSV中要做的一件事是将包含逗号的字段用双引号括起来。所以

ABC, johnny cant't come out, can he?, newfield

变为

ABC, "johnny cant't come out, can he?", newfield

如果您选择保存为文件类型CSV,我相信Excel会执行此操作。您将遇到的问题是CSV仅限ANSI。我认为您需要使用“Unicode文本”另存为选项并使用制表符分隔符或将它们转换为逗号。 Unicode文本选项还引用包含逗号的值。 (使用Excel 2007检查)

编辑:添加具体路线

Excel 2007 中(其他版本的Excel的细节可能有所不同)

选择“另存为”

在“保存类型:”字段中,选择“Unicode文本”

save dialog screenshot

您将获得一个Unicode文件。特别是UCS-2 Little Endian。

答案 1 :(得分:0)

好的,我如何解决所有问题?忘记EXCEL !!!

我将excels上传到Googledocs电子表格,将其下载为CSV,所有角色都很完美。

然后我只使用" utf_general_ci"导入到表格的相应字段中。整理,现在一切都在数据库中完美上传。