加载中…
正文 字体大小:

将EXCEL表格中的数据导入mysql数据库表中(两种方法)

(2010-03-04 15:38:03)
标签:

电脑

excel

mysql数据库

reader

it

分类: 技术学习

今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行:

在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保存为csv文件,利用phpadmin进行导入,遗憾的是,我在导入的过程中提示“。。。line 1”记不清了什么错误,总之是没有成功。

 

第一种比较可行的方法是博友(bo博)文章中提到方法(http://ttov.blog.163.com/blog/static/38227152010026111311508/),现在整理如下:

1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。否则导入数据库后会有对应的空行),假如存到“D:\data.txt”这个位置里。

2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令

load data local infile 'D:/data.txt' into table exceltomysql fields terminated by '\t';

注意:盘符我使用的“/”才成功,否则提示找不到文件 下面文章中是用的“\”!

 进行导入操作

手动进行Excel数据和MySql数据转换

2006年09月16日 星期六 下午 02:44

 

 

    今天是全国数学建模比赛,同学选的一个题目需要对一个large的Excel表格进行统计,好哥们儿嘛~~便帮助他完成了数据从Excel到MySql的转化。记下具体步骤分享给大家,也免得大家到网上到处乱找了。

    假如要把如图所示的Excel表格导入到MySql数据库中,如图:

将EXCEL表格中的数据导入mysql数据库表中(两种方法)

步骤一:

选取要导入的数据快儿,另外要多出一列,如下图:

将EXCEL表格中的数据导入mysql数据库表中(两种方法)

步骤二:

将选中的数据快儿拷贝到一个新建的表格工作薄,然后“另存为” -》“文本文件(制表符分割)(*.txt)”,假如存到“D:\data.txt”这个位置里。如图:

将EXCEL表格中的数据导入mysql数据库表中(两种方法)

步骤三:

根据要导入的数据快儿建立MySql数据库和表,然后使用命令

load data local infile 'D:\data.txt' into table exceltomysql fields terminated by '\t';

进行导入操作。如下图:

将EXCEL表格中的数据导入mysql数据库表中(两种方法)

现在数据已经全部导入到MySql里了,

让我们来select一下吧,如图:

将EXCEL表格中的数据导入mysql数据库表中(两种方法)

到此,数据由Excel到MySql的转换已经完成。

下面说下,数据从MySql到Excel的转化,其过程其实还是借助那个“制表符分割”的文本文件。

将如要将这个表中的男生信息导入到Excel中,可以这样。

select * into outfile 'D:\man.txt' from exceltomysql where xingbie="男";

如图:

将EXCEL表格中的数据导入mysql数据库表中(两种方法)

    这样,表中所有男生的信息都被输出到以制表符分割,'\n'结尾的文本文件D:\man.txt文件中。

你可以打开Excel,然后选择“数据”->“导入外部数据”->“导入数据”,选中“D:\man.txt”,一路确定就行了。

 

注意这个方法我用过虽然可以插入到mysql数据库中,但是有乱码的危险。所以我更推荐使用下面的方法。

 

方法二:此方法是博友TVBBOY整理,我根据自己遇到的情况重新总结如下:

准备工作: PHP-ExcelReader,下载地址: http://sourceforge.net/projects/phpexcelreader 我用的是2007-07-06的那个压缩文件,下载后用到\phpExcelReader\Excel目录下的oleread.inc和reader.php两个文件,并将reader.php文件打开后require_once 'Spreadsheet/Excel/Reader/OLERead.php';屏蔽掉,增加为require_once 'oleread.inc'; 然后直接将这两个文件复制到服务器下,我用的是WAMP,我直接复制到WWW目录下,再将所需要的excel文件考进来我的文件是classify.xls,然后需要一个调用reader.php的文件,源代码如下:

 

ExcelToMysql.php

 

<?php

require_once 'reader.php';

$data = new Spreadsheet_Excel_Reader();

$data->setOutputEncoding('gbk');

 $data->read('classify.xls');   //”classify.xls”是指要导入到mysql中的excel文件

 @ $db = mysql_connect("localhost", "root", "") or

       die("Could not connect to database.");//连接数据库

mysql_query("set names 'gbk'");//输出中文

mysql_select_db('japlearn');       //选择数据库

error_reporting(E_ALL ^ E_NOTICE);

 

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {

//以下注释的for循环打印excel表数据

 

//以下代码是将excel表数据【6个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!

    $sql = "INSERT INTO classify VALUES('".

               $data->sheets[0]['cells'][$i][1]."','".

                 $data->sheets[0]['cells'][$i][2]."','".

                 $data->sheets[0]['cells'][$i][3]."','".
                 $data->sheets[0]['cells'][$i][4]."','".$data->sheets[0]['cells'][$i][5]."','".$data->sheets[0]['cells'][$i][6]."')";
 

    echo $sql.'<br />';

       $res = mysql_query($sql);

}

 

?>

文中红色标注为需要注意的地方,请替换成你配置好的数据,如数据库配置等。运行http://localost/ExcelToMysql.php实现导入。

0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有