有人给我发了一个xlsx
excel文件,我用excel打开它,并用utf8编码保存为csv。
我使用mysql workbench导入向导将excel制作的utf8 csv 文件导入数据库表。但导入的结果遗漏了一些数据(少于它应该有的数据)。
我认为它与 quotechar 有关。
默认情况下, quotechar 是双引号,但我有一些这样的数据(混合单引号和双引号):
我尝试省略该值,但它不能(请参阅图片中的错误)。
所以我想知道:
答案 0 :(得分:2)
我假设您要将数据从Excel导出为CSV,因此这在Excel中的显示方式无关紧要。
当您将Excel中的数据导出为CSV格式时,它会将您的数据封装在双引号中。数据本身中的任何双引号都将由excel自动转发第二个双引号。
例如,如果您的数据是:
8"
导出时将是:
"8"""
你必须告诉Mysql你在字符"
中包含字符串。这就是它所谈论的quotechar
。它是您填写的表单上的第二个字段。
我不确定MySQl会有多挑剔,因为我还没有永远地将CSV导入Mysql。 Excel CSV输出的技巧是,如果您有以下数据:
8"
8'
它将输出为CSV:
"8"""
8'
第二个记录/字段没有获得双引号封装,因为它不包含需要封装的字符(双引号,回车符或换行符)。
Mysql 可能阻塞第二条记录(希望它的导入过程足够强大,可以处理封装和非封装的字段)