PHP教程之PHPExcel――读取excel
从刚开始练习的PHP基础语法练习,到PHP语言在WEB中的应用,再到实际的项目开发,如留言版,相册系统,中小型公司网站系统,以及期间做过的有关团队合作的小游戏,让我受益匪浅,学到了很多。次要功效是读取上传的excel文件,拔出或更新到数据库。 iconv("gbk","utf8",$_FILES["file"]["tmp_name"]),mysql_query("SETNAMESutf8"),编码转换避免中文在数据库中显现乱码;以下是次要的源代码:复制代码1header("Content-type:text/html;charset=utf-8");2require_once(PHPExcel/Classes/PHPExcel.php);3require_once(PHPExcel/Classes/PHPExcel/IOFactory.php);45iconv("gbk","utf8",$_FILES["file"]["tmp_name"]);//编码转换67$fileType=PHPExcel_IOFactory::identify($_FILES["file"]["tmp_name"]);//判别文件的范例8$objReader=PHPExcel_IOFactory::createReader($fileType);//创立工具9$objPHPExcel=$objReader->load($_FILES);//导进数据1011$currentSheet=$objPHPExcel->getSheet(0);//第一个事情簿12$allRow=$currentSheet->getHighestRow();//行数13$letters_arr=array(1=>A,2=>B,3=>C,4=>D,5=>E,6=>F,7=>G,8=>H,9=>I,10=>J,11=>K,12=>L,13=>M,14=>N,15=>O,16=>P,17=>Q,18=>R,19=>S,20=>T,21=>U,22=>V,23=>W,24=>X,25=>Y,26=>Z);141516$con=mysql_connect(localhost,root,root)17ordie(数据库链接失利!<br/>.mysql_error());1819$db=mysql_select_db(db_product,$con);20mysql_query("SETNAMESutf8");21for($currentRow=3;$currentRow<=$allRow;$currentRow++){22$rowValues=;23$id=(string)($currentSheet->getCell(C.$currentRow)->getValue());2425$select_id=mysql_query("SELECT*FROMt_shopWHEREproductNum=$id");26$result=mysql_fetch_array($select_id);272829if(!$result){//判别是不是存在30foreach($letters_arras$key=>$value){31$xh=$currentSheet->getCell($value.$currentRow)->getValue();32if($key>14)break;33$rowValues=$rowValues.($key>1?,:)..$xh.;343536}3738$sql="INSERTINTOt_shop(shopName,brand,productNum,spec,barCode,category,productName,orderNumber,deliveryNumber,returnNumber,returnBackNumber,salesPrice,costPrice,profit)VALUES(".$rowValues.")";39mysql_query($sql);40}41else{4243$reValues=re_row($result,$letters_arr,$currentSheet,$currentRow);44$sql="UPDATEt_shopSETshopName=$reValues,brand=$reValues,spec=$reValues,barCode=$reValues,category=$reValues,productName=$reValues,orderNumber=$reValues,deliveryNumber=$reValues,returnNumber=$reValues,returnBackNumber=$reValues,salesPrice=$reValues,costPrice=$reValues,profit=$reValuesWHEREproductNum=$id";45mysql_query($sql);46echomysql_error().$id.###;47print_r($reValues);48echo<br/>;49}50515253}5455mysql_close($con);5657functionre_row($s,$a,$obj,$currentRow){58$b=$d=;59foreach($aas$key=>$value){60$xh=$obj->getCell($value.$currentRow)->getValue();61if($key>14)break;62$d[]=$xh;636465}6667foreach($das$key=>$value){68if($key!=2&&$key<7){69$b[]=(string)$value;70}71elseif($key>6){72$b[]=$s[$key]+$value;73}747576}77return$b;78}到现在,对排版还是不很熟练,经常会排不好。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 兴趣是最好的老师,百度是最好的词典。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
页:
[1]