excel导入数据库php程序

PHP_使用phpexcel类实现excel导入mysql数据库功能(包括thinkphp的使用方法)
实习的时候都是使用thinkphp的框架来开发的,所以很多时候代码都带有thinkphp的影子,这也是我不想见到的。
在web开发中很多时候需要将本地的excel文件导入到数据库中,只是为了方便,想想几千条的数据要在页面上一个一个添加效率是有多低,而且还不知道是不是有重复的数据,能够导入数据库实在是非常的方便,而在实际应用中,使用excel的情况是最多的,可以说99.9都是在用excel导入。
导入数据库一般分两个步骤:
将数据文件上传到服务器
读取数据文件,并写入到数据库中
置于第一个步骤我在前篇文章已经说明,详见
.cn/s/blog_68b4ec9b01014d4t.html
现在主要说第二步的实现,我默认已经可以上传到服务器,而且知道上传之后的文件地址和名称。
使用php的代码示例是:
require_once
'phpexcel/Classes/PHPExcel.php';
require_once
'phpexcel/Classes/PHPExcel/IOFactory.php';
require_once
'phpexcel/Classes/PHPExcel/Reader/Excel5.php';
$objReader =
PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007
$objPHPExcel =
$objReader-&load($filename);
//$filename可以是上传的文件,或者是指定的文件
$objPHPExcel-&getSheet(0);
$highestRow =
$sheet-&getHighestRow(); //
取得总行数
$highestColumn =
$sheet-&getHighestColumn(); //
取得总列数
//循环读取excel文件,读取一条,插入一条
for($j=2;$j&=$highestR$j++)
$objPHPExcel-&getActiveSheet()-&getCell("A".$j)-&getValue();//获取A列的值
$objPHPExcel-&getActiveSheet()-&getCell("B".$j)-&getValue();//获取B列的值
$sql = "INSERT INTO table
VALUES(".$a.",".$b.")";
mysql_query($sql);
其实我用的最多的还是thinkphp的代码,下面是我写的thinkphp实现的过程:
$count_bef=M("products")-&count();//更改前的记录数
import("phpexcel.PHPExcel",dirname(__FILE__),".php");
import("phpexcel/PHPExcel/IOFactory",dirname(__FILE__),".php");
import("phpexcel/PHPExcel/Reader/Excel5",dirname(__FILE__),".php");
$objReader =
PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007
$objPHPExcel =
$objReader-&load($savePath.$file_name);
//$filename可以是上传的文件,或者是指定的文件
$objPHPExcel-&getSheet(0);
$highestRow =
$sheet-&getHighestRow(); //
取得总行数
$highestColumn =
$sheet-&getHighestColumn(); //
取得总列数
//循环读取excel文件,读取一条,插入一条
for($i=2;$i&=$highestR$i++)
$prdfeatures =
$objPHPExcel-&getActiveSheet()-&getCell("A".$i)-&getValue();//获取
$objPHPExcel-&getActiveSheet()-&getCell("B".$i)-&getValue();//获取&
$quarter =
$objPHPExcel-&getActiveSheet()-&getCell("C".$i)-&getValue();//获取&
$objPHPExcel-&getActiveSheet()-&getCell("D".$i)-&getValue();//获取&
$prdgroup =
$objPHPExcel-&getActiveSheet()-&getCell("E".$i)-&getValue();//获取&
$prdkind =
$objPHPExcel-&getActiveSheet()-&getCell("F".$i)-&getValue();//获取&
$prdname =
$objPHPExcel-&getActiveSheet()-&getCell("G".$i)-&getValue();//获取&
$standard =
$objPHPExcel-&getActiveSheet()-&getCell("H".$i)-&getValue();//获取&
$resource =
$objPHPExcel-&getActiveSheet()-&getCell("I".$i)-&getValue();//获取材质&
$objPHPExcel-&getActiveSheet()-&getCell("J".$i)-&getValue();//获取&
&$sql_insert="insert
ignore into pp_products
(year,quarter,type,prdgroup,prdkind,prdname,prdfeature,standard,resource,pack)
('".$year."','".$quarter."','".$type."','".$prdgroup."','".$prdkind."','".$prdname."','".$prdfeature."','".$standard."','".$resource."','".$pack."')";
$Model = new Model();
$Model-&query($sql_insert);
$count_bof=M("products")-&count();//更改后的记录数
$this-&redirect("uploadexcel/upload_product",'',4,"更改的条目数:".($count_bof-$count_bef));
&总结:其实thinkphp是可以“兼容php”的所有代码的,只是有时候会变个方式来写,尤其是在导入的方面,路径是千万不能过的。
2012年8月15日11:27:03
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
“春来无伴闲游少,行乐三分减二分。 何况今朝杏园里,闲人逢尽不逢君。”
LOFTER精选
阅读(502)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_095',
blogTitle:'折腾一晚上,终于找到了可以为我所用的PHP和MYSQL导入导出EXCEL的程序了',
blogAbstract:'还是常语,十分感谢广大网友还有我的同学蜻蜓,在此表示感谢。
一、从MYSQL中导出EXCEL,源代码:
本代码出自'
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}当前位置: &微信公众号
PHP导入导出Excel文件的方法
Loading...
143 次阅读
下面我来给大家介绍在php中操作excel两个实例,一个是利用PHP-ExcelReader导入excel并输出,另一种是直接输入excel并导出,下面看实例。
借助PHP-ExcelReader这个开源类,我们可以轻松地导入Excel文件数据,示例代码如下:
PHP-ExcelReader下载地址:http://sourceforge.net/projects/phpexcelreader/
例.导入Excel文件
require_once 'Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data-&setOutputEncoding('gbk');
$data-&read('test.xls');
for ($i = 1; $i &= $data-&sheets[0]['numRows']; $i++) {
&&& for ($j = 1; $j &= $data-&sheets[0]['numCols']; $j++) {
&&&&&&& echo &&&.$data-&sheets[0]['cells'][$i][$j].&&,&;
&&& echo &n&;
例.phpexcel导到excel
1.&&& test.php
require_once 'reader.php';
// ExcelFile($filename, $encoding);
$data = new Spreadsheet_Excel_Reader();
// Set output Encoding.
$data-&setOutputEncoding('gbk');
//&data.xls&是指要导入到mysql中的excel文件
$data-&read('data.xls');
@ $db = mysql_connect('localhost', 'root', '123456') or
&&&&&& die(&Could not connect to database.&);//连接数据库
mysql_query(&set names 'gbk'&);//输出中文
mysql_select_db('mydb');&&&&&& //选择数据库
error_reporting(E_ALL ^ E_NOTICE);
for ($i = 1; $i &= $data-&sheets[0]['numRows']; $i++) {
//以下注释的for循环打印excel表数据
for ($j = 1; $j &= $data-&sheets[0]['numCols']; $j++) {
&&&&&&&&&&& echo &&&.$data-&sheets[0]['cells'][$i][$j].&&,&;
&&&&&&&&&& }
&&&&&&&&&& echo &n&;
//PHP开源代码
//以下代码是将excel表数据【3个字段】插入到mysql中,根据你的excel表字段的多少,改写以下代码吧!
&&& $sql = &INSERT INTO test VALUES('&.
&&&&&&&&&&&&&& $data-&sheets[0]['cells'][$i][1].&','&.
&&&&&&&&&&&&&&&& $data-&sheets[0]['cells'][$i][2].&','&.
&&&&&&&&&&&&&&&& $data-&sheets[0]['cells'][$i][3].&')&;
&&& echo $sql.'
&&&&&& $res = mysql_query($sql);
例.导出excel文件
比如我需要一个做php导出 excel的的程序,只需要把相关的数据导出到excel表就可以了,这么简单的操作就不需要用那些类库什么的了。直接用header的方式就可以了:header(&Content-type:application/vnd.ms-excel&);
看看代码:
header(&Content-type:application/vnd.ms-excel&);
header(&Content-Disposition:filename=Export_test.xls&);
$tab=&t&; $br=&n&;
$head=&编号&.$tab.&备注&.$
//输出内容如下:&
echo $head.$
echo& &test&.$&
echo& &string1&;
echo& &061234&.$& //直接输出会被Excel识别为数字类型
echo& &number&;
echo& &=&061234&&.$& //原样输出需要处理
echo& &string2&;
在导出后会发现一个问题,如果数据是数字会出现一些意想不到的情况。比如,&012345&,在excel中会变成&12345&;如果输入身份证号码这样的长数字,在excel中会用科学计数法表示出来,并且最后的四位数字会出现偏差,变位0000等情况。这就需要把单元格设置为文本格式,方法是
echo& &=&061234&&如果程序是utf-8编码的,还需要用iconv函数去转码,不然是会乱码的,乱码的。
另word格式导入类似,,指定header就可以了:
header(&Content-Type:&& application/msword&);&&&&&&&
header(&Content-Disposition:&&&& filename=doc.doc&);&
相关推荐:1、2、3、4、5、6、7、8、9、10、
猜你喜欢:1、2、3、4、5、6、7、8、9、10、
推荐电影:1、2、3、4、5、6、7、8、9、10、
热门关键词:
随机关键词:
正在加载...
热评文章评分 4.2, 满分 5 星10 票评分 4.2, 满分 5 星10 票评分 3.9, 满分 5 星10 票评分 4.1, 满分 5 星9 票评分 3.9, 满分 5 星9 票经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
我有疑问(0)
说说为什么给这篇经验投票吧!
我为什么投票...
你还可以输入500字
看了这篇经验,你有一些独到的心得要分享给大家?或是,你按照作者的指导,做出了一模一样,甚至更棒的结果?
不管是“有心得”,还是“有所得”,都快分享给经验的小伙伴们看看吧!
非回享用户暂时不能发布经验“有得”&
你还可以输入1000字
如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!
你还可以输入500字
请扫描分享到朋友圈

我要回帖

更多关于 php导入excel文件 的文章

 

随机推荐