0

我想做一些非常简单的事情。我只想将 excel 数据导出到 CSV 以便将其放入 Mysql DB。

这是一个巨大的excel,所以我不能轻易管理异常。

我的问题是,当我将 xslx 保存到 csv 中时,"只有当列中有逗号或已经存在时,它才会将我分隔列,"所以我的 CSV 中有类似的内容:

col1 | col2 | col3 => col1,col2,col3
col1 | co,l2| col3 => col1,"co,l2",col3 
col1 |"col"2| col3 => col1,"""col""2",col3 
col1 |      | col3 => col1,,col3

所以我尝试了很多方法来将它转换为 SQL,但我没有找到一个好方法。

我在 Excel 2007 中工作,并且 SQL 希望 CSV 具有此配置:

Columns separated with: ,
Columns enclosed with: "
Columns escaped with: \
Lines terminated with: auto
4

1 回答 1

1

所以你想加载你的数据使用

LOAD DATA FROM INFILE 'filename.csv'
INTO TABLE tablename
COLUMNS TERMINATED BY ','
        OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'

加载文件时实际上会忽略 ,或者用更好的OPTIONALLY方式来表述它,即使您没有指定OPTIONALLY,封闭仍然被视为可选。这意味着列值可以用引号括起来,但不是必须的。请注意,afaik。Excel 不使用\转义值。

如果您需要其他格式来导入 MySQL 以外的其他目的,那么您可以在之后使用您喜欢的设置从 MySQL 重新导出数据。写入文件时,省略OPTIONALLY将为每个值打开引号。

于 2012-10-08T06:09:47.127 回答