excle 数据导入到mysql数据库,mac系统导入遇到的问题
相信在我们开发过程中会遇到这样的问题!刚上线的新系统,需要导入项目之前的一些数据,这些数据通常都是文本或者excle等文件保存起来的,由于数据量比较大,让人为的去一条一条的录入,显然工作量比较大,也不可能;还有个问题就是,之前的保存在excle的数据,可能对应你现在系统中的多张表,给数据分割也是一件麻烦的事!针对这些问题,今天和大家分享一下,我在遇到这种问题的时候,解决的方式方法。
首先,如果一个表格中的数据,刚好在一张mysql表中,这样的情况,处理起来比较简单,处理起来有这样的几个步骤:
-
将excel表格打开-->另存为-->选择csv格式保存(默认用逗号分隔),保存到指定位置。
这步的原因是因为,mysql数据库,不能直接将xls格式的excle解析。这一点可以在mysql数据库导出的时候发现,因为导出的数据,基本就是.sql,.csv,.json格式的,对于excle改为sql或者json格式,明显有太多的工作,而,改成csv格式,只需另存为即可。 -
用记事本打开csv文件,另存为txt文件格式,编码格式为UTF-8(目前本地采用ANSI编码格式,UTF-8时导入会出错)**
这一步操作事因为,数据库的编码格式一般事utf-8,但是另存为的csv文件,默认编码是ANSI格式,如果没有第二步骤操导入的时候,会说,编码格式不正确,如果是mac开发的朋友,可能会遇到找不到如何改变文件编码的问题,可以发给windos系统的朋友让他帮你改一下再发过来即可!
image- 我这里使用的是mysqlworkbench,直接在选中表格-->右键-选择Table Data Improte Wizard 即可,后面一步一步按照向导操作即可。
以上的解决方法可以解决百分之八十的问题,在文章开头的时候说过,很多时候,之前的数据在一张excel中,但是心系统或者老系统中,一个excel可能对应多张表,这样的问题如何解决? 我总结的有两种解决办法。
第一种:就是拆分excel表格,按照数据库的表,将一个excel拆成多个,每一个表格对应一张表中的数据,再用上面的方法,将每一个表格数据,导入表中。
第二种:将该excel表中的数据,导入数据库中的一个临时的表,然后再讲这张总表中的数据通过sql语句,同步到每个表中,具体sql语句如下图:
image以上可以选者负责总表中的某些字段到其它表中即可。
通过java程序的方式(注解)实现Excel数据导入导出数据库请看我的另一篇文章java Excel数据通过注解的方式导出导入数据库详解