方法很多,不过建议你先看看mysql的开发文档,里面写的很详细的,如果你懒得看,可以看下面的
一、有个软件PHP Excel Parser Pro v4.2可以
二、可将Excel存成csv格式。然后通过phpmyadmin倒入mysql
三、先导入Access中,再弄到MySQL中,或者自己写程序读出excel中数据然后存入mysql中
四、还有一个比较笨的手工方法,就是先利用excel生成sql语句,然后再到mysql中运行,这种方法适用于excel表格导入到各类sql数据库:
1、假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格table,对应的字段分别是col1、col2、col3
2、在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下:
①、增加一列(假设是D列)
②、在第一行的D列,就是D1中输入公式: =CONCATENATE("insert into table (col1,col2,col3) values ('",A1,"','",B1,"','",C1,"');")
③、此时D1已经生成了如下的sql语句: insert into table (col1,col2,col3) values ('a','11','33');
④、将D1的公式复制到所有行的D列(就是用鼠标点住D1单元格的右下角一直拖拽下去啦)
⑤、此时D列已经生成了所有的sql语句 6、把D列复制到一个纯文本文件中,假设为sql.txt
3、把sql.txt放到数据库中运行即可,你可以用命令行导入,也可以用phpadmin运行。
方法四的补充:
1.在需要导入的数据最后一列,写入一个excel公式,如下
=concatenate("insert into employee(name,birthday,email,hobby)values('",rc[-4],"','",rc[-3],"','",rc[-2],"','",rc[-1],"');")
2..将最后一列选中,复制数据到一个文本文件,将该文本文件另存为一个.sql文件(别忘了删除第一行的“sql”)。
注:如果有日期的话就把公式修改一下
=concatenate("insert into employee(name,birthday,email,hobby)values('",rc[-4],"','",text(rc[-3],"yyyy-mm-dd hh:mm:ss"),"','",rc[-2],"','",rc[-1],"');")
从mysql导出数据到excel
方法一:进入到mysql的控制台,输入: 1. SELECT * INTO OUTFILE ‘./test.xls‘ FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50; 这样,应该会在你的mysql的var/目录下产生一个test.xls的文件。。。 但是如果你的shell的登录帐户和mysql的运行账户不同,很可能这个方法就不适用了,因为你可以通过mysql控制台来产生这个文件,但是你却没有办法通过shell来对这个文件进行操作,因为用户不同,没有访问权限。 这个时候,同事告诉偶滴办法就重装登录了!!! 1. echo "SELECT * FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50;"| /usr/local/mysql/bin/mysql -hlocalhost -uroot -pxxxxx > /tmp/test.xls ok,把你的test.xls文件从tmp下载到本地打开来看看吧。。。 什么?中文乱码? 别着急。。。 因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,这个时候你有两种选择, 1.在服务器端使用iconv来进行编码转换, 1. iconv -futf8 -tgb2312 -otest2.xls test.xls 如果转换顺利,那么从server上下载下来就可以使用了。 转换如果不顺利,则会提示:iconv: illegal input sequence at position 1841 类似于这样的错误, 先把test.xls下载下来,这个时候文件是utf-8编码的,用excel打开,乱码。 把test.xls以文本方式打开,然后另存为,在编码选择ANSI编码,保存。
一、有个软件PHP Excel Parser Pro v4.2可以
二、可将Excel存成csv格式。然后通过phpmyadmin倒入mysql
三、先导入Access中,再弄到MySQL中,或者自己写程序读出excel中数据然后存入mysql中
四、还有一个比较笨的手工方法,就是先利用excel生成sql语句,然后再到mysql中运行,这种方法适用于excel表格导入到各类sql数据库:
1、假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格table,对应的字段分别是col1、col2、col3
2、在你的表格中增加一列,利用excel的公式自动生成sql语句,具体方法如下:
①、增加一列(假设是D列)
②、在第一行的D列,就是D1中输入公式: =CONCATENATE("insert into table (col1,col2,col3) values ('",A1,"','",B1,"','",C1,"');")
③、此时D1已经生成了如下的sql语句: insert into table (col1,col2,col3) values ('a','11','33');
④、将D1的公式复制到所有行的D列(就是用鼠标点住D1单元格的右下角一直拖拽下去啦)
⑤、此时D列已经生成了所有的sql语句 6、把D列复制到一个纯文本文件中,假设为sql.txt
3、把sql.txt放到数据库中运行即可,你可以用命令行导入,也可以用phpadmin运行。
方法四的补充:
1.在需要导入的数据最后一列,写入一个excel公式,如下
=concatenate("insert into employee(name,birthday,email,hobby)values('",rc[-4],"','",rc[-3],"','",rc[-2],"','",rc[-1],"');")
2..将最后一列选中,复制数据到一个文本文件,将该文本文件另存为一个.sql文件(别忘了删除第一行的“sql”)。
注:如果有日期的话就把公式修改一下
=concatenate("insert into employee(name,birthday,email,hobby)values('",rc[-4],"','",text(rc[-3],"yyyy-mm-dd hh:mm:ss"),"','",rc[-2],"','",rc[-1],"');")
从mysql导出数据到excel
方法一:进入到mysql的控制台,输入: 1. SELECT * INTO OUTFILE ‘./test.xls‘ FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50; 这样,应该会在你的mysql的var/目录下产生一个test.xls的文件。。。 但是如果你的shell的登录帐户和mysql的运行账户不同,很可能这个方法就不适用了,因为你可以通过mysql控制台来产生这个文件,但是你却没有办法通过shell来对这个文件进行操作,因为用户不同,没有访问权限。 这个时候,同事告诉偶滴办法就重装登录了!!! 1. echo "SELECT * FROM tb1 WHERE 1 ORDER BY id DESC LIMIT 0, 50;"| /usr/local/mysql/bin/mysql -hlocalhost -uroot -pxxxxx > /tmp/test.xls ok,把你的test.xls文件从tmp下载到本地打开来看看吧。。。 什么?中文乱码? 别着急。。。 因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,这个时候你有两种选择, 1.在服务器端使用iconv来进行编码转换, 1. iconv -futf8 -tgb2312 -otest2.xls test.xls 如果转换顺利,那么从server上下载下来就可以使用了。 转换如果不顺利,则会提示:iconv: illegal input sequence at position 1841 类似于这样的错误, 先把test.xls下载下来,这个时候文件是utf-8编码的,用excel打开,乱码。 把test.xls以文本方式打开,然后另存为,在编码选择ANSI编码,保存。