查看: 5353|回复: 0
打印 上一主题 下一主题

一个将Excel中的数据导入MySQL的简单方法

[复制链接]
跳转到指定楼层
1#
发表于 2008-9-23 21:20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
台州网址导航
笔者介绍了一个将Excel中的数据导入MySQL的简单方法。
  这个方法最简单但不是傻瓜式的方法,需要你对Excel和MySQL都有一点点了解。

  当然,我在最后提供了一个作为例子的Excel文件,但仍然需要你会写MySQL的INSERT语句,这样才能调试可能出现的错误。

  1.在需要导入的数据最后一列,写入一个Excel公式(例子中是“SQL”下面的单元格,“SQL”是不必要的,仅仅是为了看起来方便)。

  =CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",RC[-3],"','",RC[-2],"','",RC[-1],"');")

  这样就会生成insert语句,正如你在例子Excel文件中看到的(当你单击SQL下面的单元格时,可以看到公式)。

  这个实际上是使用了Excel的CONCATENATE字符串连接函数,将数据生成你需要的SQL语句。RC[-2]是从最后一列(不包括该列)往前数的第二列。

  2.将"SQL"下面单元格的公式复制到该列的其它单元格,这样可以看到生成了所需要的所有SQL语句。

  3.将最后一列选中,复制数据到一个文本文件,将该文本文件另存为一个.sql文件(别忘了删除第一行的“SQL”)。

  4.能够运行sql文件的工具有很多,运行这个文件就可以了。如果没有工具,参考 在windows下批量执行mysql脚本(http://www.albertsong.com/read-21.html)。

  使用上面的方法,你需要知道什么样的insert语句对于mysql来说是正确的。

  最常见的是日期的格式,如果不转换成字符串,用上面的方法会生成一个整数,这样插入mysql后就不对了。

  因此上面的公式改成

  =CONCATENATE("insert into employee(name,birthday,email,hobby)values('",RC[-4],"','",TEXT(RC[-3],"yyyy-mm-dd hh:mm:ss"),"','",RC[-2],"','",RC[-1],"');")

  这里用到了TEXT函数来将日期格式化成mysql能接受的日期字符串。

  具体请参考例子。Excel2Mysql.rar

  文件说明如下:

  doc.txt--本文

  SqlGen.xls--Excel例子文件

  create.sql--建表语句

  insert.sql--生成的insert语句

  function.txt--需要在Excel中使用的函数

  写了这么多,实际上就一句话:使用Excel的CONCATENATE函数生成sql语句并执行。

  如果懂一点儿VBA可以直接生成insert.sql文件
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
台州维博网络(www.tzweb.com)专门运用PHP+MYSQL/ASP.NET+MSSQL技术开发网站门户平台系统等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

网站推广
关于我们
  • 台州朗动科技(Tzweb.com)拥有多年开发网站平台系统门户手机客户端等业务的成功经验。主要从事:政企网站,系统平台,微信公众号,各类小程序,手机APP客户端,浙里办微应用,浙政钉微应用、主机域名、虚拟空间、后期维护等服务,满足不同企业公司的需求,是台州地区领先的网络技术服务商!

Hi,扫描关注我

Copyright © 2005-2026 站长论坛 All rights reserved

Powered by 站长论坛 with TZWEB Update Techonolgy Support

快速回复 返回顶部 返回列表