老师给的数据是一个有4万条数据的excel表格,记录了学生的信息.在这个到处流行hold住得今天,真的让我hold不住啦,主要是,一个学生的记录可能有多条,最终的目的是什么呢?最终的目的就是把重复的去掉,以name和college为共同查询条件,一样的认为是同一个同学这样分开来.而且,多条记录的信息在去除后,剩下的应该是信息最多的,也就是说,多条重复信息的内容是相加的关系.我晕,我觉得说的有点乱,总之我懂了...
以为这些都比较容易,但是面对4万多条数据,有点麻烦,处理来处理去的,怎么个处理法呢...
一: 开始,想在excel中写个VBA,但是求爷爷告奶奶的,都不行,因为,在强大的excel面前,我实在是太渺小了...
二: 后来想到用mysql,因为用mysql处理数据或者是用java连接mysql然后进行操作也是比较熟悉的.在这种思想的指导下,俺先是在excel中加上了一个id字段,然后再在mysql中建好表,当然字段对应是一样的,之后把excel表中的数据导入到mysql中,这个方法不错,我要提一下(这是当年小龙问我怎么导入的时候,俺查出来的),步骤如下:
1: 打开excel,以以下格式另存一下:
2: 存好txt文件后剩下的就是mysq的操作了:
首先要新建表,我的如下:
CREATE TABLE `alumnus` ( `id` int(11) NOT NULL, `name` varchar(32) DEFAULT NULL, `gender` varchar(32) DEFAULT NULL, `workaddress` varchar(32) DEFAULT NULL, `workzipcode` varchar(32) DEFAULT NULL, `workphone` varchar(32) DEFAULT NULL, `workfax` varchar(32) DEFAULT NULL, `workkind` varchar(32) DEFAULT NULL, `lastname` varchar(32) DEFAULT NULL, `firstname` varchar(32) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=UTF8;然后就是导入txt中的数据:
load data local infile 'D:\data.txt' into table alumnus fields terminated by '\t';
3: 这样,一个excel中的数据就导入到了mysql中,哈哈,简单,方便…
三: 虽然上面的方法好像可行了,但是在公司的电脑上总是出错,而且还是乱码的错误,总是总是总是调不通,还出现什么瑞典语,我勒个去...我这么咂摸着,应该是公司电脑eclipse的编码问题,或者是数据库的问题,没有办法,我只好回来做…利用上面的方法虽然成功导入了,但是还是不行…
四: 终于终于到了今天,我拿着自己的电脑,突然想到另一个办法,就是把excel中的数据放到access,然后再转到sqlserver,然后再导入mysql,哈哈,这样做的目的,一个是显摆一下俺装的软件多,一个是想想这样应该跨度不是太大,编码应该还可以.首先在access中把name是空的去掉,也算是处理了一步,之后就是导入到sqlserver中,下面说一下步骤:
1: 首先,因为用的sqlserver2000,所以将access数据库村成了2000版本的,大版本不行不行的,我试了,真是的…
2:打开sqlserver 2000,选择数据库,执行如下操作:
点下一步,数据源选择Microsoft Access,下面选择上access文件:
点击下一步:
之后都是点击下一步下一步,最后完成.
3: 接下来就是将sqlserver导出到mysql:
(俺本地上装了mysql和sqlserver,所以按照下面的配置搞的)
选择导出数据:
点击下一步后,选择数据源,注意下面选中哪个数据库:
点击下一步,选择目的:MySQL ODBC 5.1 Driver:
然后点击”新建”,在弹出的对话框中选择"系统数据源":
点下一步,选择MySQL ODBC 5.1 Driver:
点下一步,填写mysql的配置:
,
可以点击Test判断是否连接成功.连接成功的话,确定后会出来如下内容:
之后点击下一步:
这里要注意的是,一般数据直接下一步就行了,但是我这里出现的问题是因为没有转换类型,如果you的也是这样,请点击转换下面的小框框,将字段的数据类型改了,点击后有如下:
我之前报错,后来将tinytext类型改为varchar类型的就没有错了,嘻嘻~
之后就下一步下一步好了,最后倒入成功了,看看mysql里面的数据,哇,还真的有了呢,哈哈!