日期:2014-05-16  浏览次数:20448 次

关于excel表导入数据库的一点点心得
    前几天,学校网站要我导入一批学生的数据,数据量比较庞大,编了个将excel表转成sql文件的转换程序,操作比较简单,但如果要用要改一下php文件。
<?php
	$src=file("2010.txt"); 
	$file_name = "data2010.sql"; 
	$file_pointer = fopen($file_name, "a"); 
	$i=0; 
	$k=5542;
	foreach ($src as $line) {
	   $array = explode("\t",$line);
	   $sql = "INSERT INTO table(classid,onclick,userid,username,ztid,checked,istop,truetime,ismember,dokey,userfen,isgood,filename,fh,groupid,newstempid,plnum,firsttitle,isqf,totaldown,title,newstime,closepl,havehtml,lastdotime,haveaddfen,infopfen,infopfennum,votenum,zhuanye,xueyuan,csyear,xb,mgb,xz,zzmm,contact,comefrom,shehui,win,english,computer,speciality,work,workarea1,workarea2) VALUES ('86','1','1','admin','|','1','0','1259917980','0','0','0','1','$k','0','1','14','0','0','0','0','$array[0]','2010-10-15 19:33:00','0','1','1259917980','0','0','0','0','$array[1]','$array[2]','','$array[3]','','$array[4]','$array[5]','$array[6]','$array[7]','$array[8]','$array[9]','$array[10] ','$array[11]','$array[12]','$array[13]','$array[14]','$array[15]');";
	   fwrite($file_pointer, $sql); 
	   ++$i; 
	   ++$k;
	} 
	fclose($file_pointer);
	echo "ok!";
?>

使用前要将有用的列复制到txt文件里,注意如果单元格内有回车要去掉,用ALT+10回车替换。

后来在网上发现一种更简单的方法,原来excel自身就用这么强大的功能啊,只是没学过excel的表达式。步骤大概是这样的:
    excel表格中有A、B、C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age 。
  在你的excel表格中增加一列,利用excel的公式自动生成sql语句,方法如下:
  1、增加一列(D列)
  2、在第一行的D列,就是D1中输入公式: =CONCATENATE("insert into users (name,sex,age) values ('",A1,"','",B1,"','",C1,"');")
  3、此时D1已经生成了如下的sql语句: insert into users (name,sex,age) values ('ls','女','24');
  4、将D1的公式复制到所有行的D列
  5、此时D列已经生成了所有的sql语句
  6、把D列复制到一个纯文本文件中。

恩,以后导入数据库可以用上面的简单方法了!