`
tiehao
  • 浏览: 32816 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

phpexcel读出文件 导入数据库的一些代码 写的比较乱 @导出

阅读更多

用phpexcel读出并导入数据库的代码 //导入

    function actionimport() {
        //error_reporting(0);
        $form = new Form_Import(url('teamup/import'));
        $province = Province::find()->all()->query();
        $form['province_id']->items = Helper_Array::toHashMap($province, 'province_id', 'name');
        if ($this->_context->isPOST()) {
            $teamupclass_id = $_POST['teamupclass_id'];
            $province_id = $_POST['province_id'];
            $check = strrpos($_FILES['filecsv']['name'],".");
            $check1 = substr($_FILES['filecsv']['name'],$check+1);
            if ($check1=='csv' || $check1=='txt' || $check1=='xls' ||$check1=='xlsx') {
            	if($check1=='xls' || $check1=='xlsx'){
            		//header("Content-Type: text/html; charset=utf-8");
					//error_reporting(0);
					//ini_set('memory_limit', '512M');//处理内存溢出
					//ini_set('max_execution_time', '50');
					$roodir=dirname(dirname(__FILE__));
					set_include_path("{$roodir}/1.7.2/classes");//设置包含phpexcel包的路径
					require_once 'PHPExcel.php';//包含类
					require_once'PHPExcel/Reader/Excel2007.php';//包含读功能实现的2007格式的类
					require_once'PHPExcel/Reader/Excel5.php';//包含excel5读功能的类
					
					//$fileName = 'zzzz.xls';
					//$path = 'E:\phpnow\htdocs\uniteone\\';
					//$filePath = $path.$fileName;
					$filePath=$_FILES['filecsv']['tmp_name'];
					$PHPExcel = new PHPExcel();  
					$PHPReader = new PHPExcel_Reader_Excel2007();    //新建excel2007读对象
					
					if(!$PHPReader->canRead($filePath)){      //如果读对象格式不合,新建excel5读对象
					 $PHPReader = new PHPExcel_Reader_Excel5(); 
					 if(!$PHPReader->canRead($filePath)){      //如果还不对,输出没有excel
					  echo 'no Excel';
					  return ;
					 }
					}
					$PHPExcel = $PHPReader->load($filePath);
					$currentSheet = $PHPExcel->getSheet(0);  //取得excel工作“分页”
					
					/**取得一共有多少列*/
					$allColumn = $currentSheet->getHighestColumn(); 
					
					/**取得一共有多少行*/
					$allRow = $currentSheet->getHighestRow();  
					
					for($currentRow = 1;$currentRow<=$allRow;$currentRow++){//获取excel文件数据到数组
					 for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){
					  $address = $currentColumn.$currentRow;
					  //$abc=iconv("", "utf-8", $currentSheet->getCell($address)->getValue());
						 //echo $currentSheet->getCell($address)->getValue()."\t";
						$arr[$currentColumn]=trim($currentSheet->getCell($address)->getValue());
						//$lines[]=$currentSheet->getCell($address)->getValue();
					 }
					 $lines[]=implode(",",$arr);
					}
					//print_r($lines);
            	}else{
           			// 将一个文件读入数组。本例中通过 HTTP 从 URL 中取得 HTML 源文件。
                	$lines = file($_FILES['filecsv']['tmp_name']);
                	//print_r($lines);
            	}
                // 在数组中循环,显示 HTML 的源文件并加上行号。
                foreach ($lines as $line_num => $line):
                print_r($line);
                    if($line_num > 1) {
                    	$line = explode(",",$line);
                    	        foreach( $line as $k=>$v) {
                    	        	
            if( !$v )
                unset( $line[$k] );
                
        }
        
        $line = array_flip(array_flip($line));
       // print_r($line);
       if (count($line)==2){
        	$line = implode(",",$line);
                        $line.=",$teamupclass_id,1,$province_id";
                        $address=explode(",", iconv("GB2312","UTF-8//IGNORE",$line));
  //                    dump ($address);
                        if(count($address)<5) {
                            return $this->_redirectMessage(
                            '文件格式错误',
                            '导入失败。',
                            url('teamup/import'));
                            break;
                        }
                        $value=Teamup::meta()->props2fields;
                        $vartext=$value['city_id'].','.$value['name'].','.$value['teamupclass_id'].','.$value['country_id'].','.$value['province_id'];
                        $useraddress=explode(",", $vartext);
                        $temp = new Teamup(array_combine($useraddress,$address));
                        $temp['order']=0;
                       // $aaaa=array_combine($useraddress,$address);
                       Teamup::meta()->deleteWhere('name=?',$address['0']);// Teamup::meta()->deleteWhere(array($aaaa));
                        $temp->save();
        }
         if(count($line)==3){
        	$line = implode(",",$line);
        	$line.=",$teamupclass_id,1";
        	if($check1!='xls' && $check1!='xlsx')	{$address=explode(",", iconv("GB2312","UTF-8//IGNORE",$line));}		
        	else {$address=explode(",", $line);}
           //$address=explode(",", iconv("GB2312","UTF-8//IGNORE",$line));            
                      //  $bb=Province::meta()->find('name= ?',$address[1])->getOne();
                      //  $address[1]=$bb['province_id'];
			/*转换省份为省份id对应数据库省份表,由于数据库存的只是简称,而要导入的数据有简称也有全称,因此不使用查询匹配*/
        	if ($address[1]=='北京' || $address[1]=='北京市') {$address[1]=2;}
        	 else if($address[1]=='上海' || $address[1]=='上海市') {$address[1]=3;}
         	 else if($address[1]=='天津' || $address[1]=='天津市') {$address[1]=4;}
         	 else if($address[1]=='重庆' || $address[1]=='重庆市') {$address[1]=5;}
	         else if($address[1]=='河北' || $address[1]=='河北省') {$address[1]=6;}
	         else if($address[1]=='山西' || $address[1]=='陕西省') {$address[1]=7;}
	         else if($address[1]=='内蒙古' || $address[1]=='内蒙古自治区') {$address[1]=8;}
	         else if($address[1]=='辽宁' || $address[1]=='辽宁省') {$address[1]=9;}
	         else if($address[1]=='吉林' || $address[1]=='吉林省') {$address[1]=10;}
	         else if($address[1]=='黑龙江' || $address[1]=='黑龙江') {$address[1]=11;}
	         else if($address[1]=='江苏' || $address[1]=='江苏省') {$address[1]=12;}
	         else if($address[1]=='浙江' || $address[1]=='浙江省') {$address[1]=13;}
	         else if($address[1]=='安徽' || $address[1]=='安徽省') {$address[1]=14;}
	         else if($address[1]=='福建' || $address[1]=='福建省') {$address[1]=15;}
	         else if($address[1]=='江西' || $address[1]=='江西省') {$address[1]=16;}
	         else if($address[1]=='山东' || $address[1]=='山东省') {$address[1]=17;}
	         else if($address[1]=='河南' || $address[1]=='河南省') {$address[1]=18;}
	         else if($address[1]=='湖北' || $address[1]=='湖北省') {$address[1]=19;}
	         else if($address[1]=='湖南' || $address[1]=='湖南省') {$address[1]=20;}
	         else if($address[1]=='广东' || $address[1]=='广东省') {$address[1]=21;}
	         else if($address[1]=='广西' || $address[1]=='广西省') {$address[1]=22;}
	         else if($address[1]=='南海' || $address[1]=='南海省') {$address[1]=23;}
	         else if($address[1]=='四川' || $address[1]=='四川省') {$address[1]=24;}
	         else if($address[1]=='贵州' || $address[1]=='贵州省') {$address[1]=25;}
	         else if($address[1]=='云南' || $address[1]=='云南省') {$address[1]=26;}
	         else if($address[1]=='西藏' || $address[1]=='西藏自治区') {$address[1]=27;}
	         else if($address[1]=='陕西' || $address[1]=='陕西省') {$address[1]=28;}
	         else if($address[1]=='甘肃' || $address[1]=='甘肃省') {$address[1]=29;}
	         else if($address[1]=='青海' || $address[1]=='青海省') {$address[1]=30;}
	         else if($address[1]=='宁夏' || $address[1]=='宁夏省') {$address[1]=32;}
	         else if($address[1]=='台湾' || $address[1]=='台湾省') {$address[1]=33;}
	         else if($address[1]=='香港' || $address[1]=='香港特别行政区') {$address[1]=34;}
	         else if($address[1]=='澳门' || $address[1]=='澳门特别行政区') {$address[1]=35;}
	         else {$address[1]=31;}
                      // dump ($address);
                        if(count($address)<5) {
                            return $this->_redirectMessage(
                            '文件格式错误',
                            '导入失败。',
                            url('teamup/import'));
                            break;
                        }
                        $value=Teamup::meta()->props2fields;
                        $vartext=$value['name'].','.$value['province_id'].','.$value['city_id'].','.$value['teamupclass_id'].','.$value['country_id'];
                        $useraddress=explode(",", $vartext);
                        $temp = new Teamup(array_combine($useraddress,$address));
                        $temp['order']=0;
                       // $aaaa=array_combine($useraddress,$address);
                      Teamup::meta()->deleteWhere('name=?',$address['0']);//  Teamup::meta()->deleteWhere(array($aaaa));
                        $temp->save();
        }
                    }
           //                        dump(iconv("GB2312","UTF-8//IGNORE",$line));
                endforeach;
                //                            dump(iconv("GB2312","UTF-8//IGNORE",$lines));
                //foreach ($lines as $line_num => $line) {
                //    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
                //            }
                echo '成功!';
                   /* return $this->_redirectMessage(
                '',
                '导入成功。',
                url('teamup/import'));*/
            }
            else 
            return $this->_redirectMessage(
                '',
                '导入失败。',
                url('teamup/import'));
        }
        $this->_view['form'] = $form;
    }
导出:
$roodir=dirname(dirname(__FILE__));
		set_include_path("{$roodir}/1.7.2/classes");//设置包含phpexcel包的路径
		require_once 'PHPExcel.php';
		require_once'PHPExcel/Writer/Excel2007.php';
		// 创建一个处理对象实例
		$objExcel = new PHPExcel();
		// 创建文件格式写入对象实例, uncomment
		//$objWriter = new PHPExcel_Writer_Excel5($objExcel);// 用于其他版本格式
		// or
		$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式
		
		
		$objExcel->setActiveSheetIndex(0);
		$objActSheet = $objExcel->getActiveSheet();
		//设置当前活动sheet的名称
		$objActSheet->setTitle('测试Sheet');
		//*************************************
		//设置单元格内容
		//
		//由PHPExcel根据传入内容自动判断单元格内容类型
		$z=Teamup::meta()->find()->getAll();
		//	$z=Province::meta()->find()->getAll();
			$i=0;
            	foreach ($z as $y) {
            			//print_r($y->province_id);
	            		//print_r($y->name);break;
	            		$i++;
            			$objActSheet->setCellValue('A'.$i,$y->name);
            			$x=Province::meta()->find('province_id=?',$y->province_id)->getAll();
            			foreach ($x as $w):
	            		$objActSheet->setCellValue('B'.$i,$w->name);
	            		endforeach;
	            		$objActSheet->setCellValue('C'.$i,$y->city_id);
	            		
            	}
		
		//输出内容
		//
		$outputFileName = "output.xls";
		//到文件
		////$objWriter->save($outputFileName);
		//or
		//到浏览器
		header("Content-Type: application/force-download");
		header("Content-Type: application/octet-stream");
		header("Content-Type: application/download");
		header('Content-Disposition:inline;filename="'.$outputFileName.'"');
		header("Content-Transfer-Encoding: binary");
		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
		header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
		header("Pragma: no-cache");
		$objWriter->save('php://output');
分享到:
评论

相关推荐

    PHPExcel数据库表导出

    PHPExcel数据库表导出PHPExcel数据库表导出

    PHPExcel导入数据库_about_

    它允许开发者通过编程方式处理Excel文件,从而实现数据的导入和导出。要使用PHPExcel,你需要先将其下载并引入到你的PHP项目中。 导入PHPExcel库后,你需要创建一个PHP脚本来读取Excel文件。可以使用`PHPExcel_...

    ThinkPHP5的PHPExcel导入导出

    本篇文章将详细探讨如何在ThinkPHP5框架中结合PHPExcel来实现导入导出功能。 首先,我们了解下ThinkPHP5。它是一个轻量级的PHP框架,基于MVC(Model-View-Controller)设计模式,提供了丰富的内置功能和良好的性能...

    利用phpexcel把excel导入数据库和数据库导出excel实现

    标题中的“利用phpexcel把excel导入数据库和数据库导出excel实现”是指使用PHPExcel库来处理Excel文件,以便与数据库进行交互。这个过程包括从Excel文件读取数据并将其存储到数据库,以及从数据库中提取数据并写入到...

    PHPExcel 1.8 Excel导入导出

    这里的"PHPExcel 1.8 Excel导入导出"是指使用PHPExcel 1.8版本进行Excel数据的导入和导出操作。 首先,我们需要理解PHPExcel的核心概念。它提供了一个对象模型,可以创建、读取和修改Excel文件。在1.8版本中,主要...

    PHPexcel导入数据库

    下面我们将详细讨论如何利用PHPExcel来实现Excel数据导入到数据库的过程。 1. **安装PHPExcel库** 在开始之前,你需要先在项目中引入PHPExcel库。你可以通过Composer(PHP的依赖管理工具)来安装,命令如下: ```...

    phpExcel 导入文件限定列数

    phpExcel导入excel文件,对导入的文件限定导入列数,并将符合格式的写入数据库。

    thinkphp3.2整合PHPExcel 数据导入导出完整示例

    总结一下,通过ThinkPHP 3.2和PHPExcel的结合,我们可以实现高效的数据导入导出功能。理解并掌握这两个工具的使用,对于处理大量数据的Web应用来说,是非常有价值的。在实际操作中,不断实践和优化,可以让你的代码...

    phpExcel 导入导出带图片的excel表格

    在PHP开发中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`phpExcel`是一个广泛使用的PHP库,它允许开发者创建、读取和修改Microsoft Excel文件,即使这些文件包含图像。本篇文章将深入...

    phpexcel 导入导出,html格式导出

    在您的项目中,您提到的重点是“phpexcel导入导出,html格式导出”,这涉及到如何使用PHPExcel处理不同类型的文件格式以及如何生成HTML格式的导出。 1. PHPExcel导入导出: PHPExcel库提供了一个方便的API,用于...

    PHPExcel导入导出插件

    提供的示例代码通常会涵盖基本的导入导出操作以及更复杂的任务,如合并单元格、设置边框和填充色、条件格式化等。开发者可以根据这些示例来编写自己的代码,以满足特定的需求。 5. **性能优化** 大量数据处理时,...

    php实现利用phpexcel导入导出数据至excel

    1,建立mysql数据库,把excel_demo.sql导入到你的数据库,采取utf-8编码; 2,导入时候请按照xls/demo.xls的格式导入,在linux系统下 xls目录要有下的权限; 3, 默认只有一条数据,导出至少有一条数据; 4,如果数据...

    利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel的类.zip

    分享一个利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel的类。根据时间生成采购报表,实例化excel类,设置选定sheet表名,合并单元格 给单元格赋值(数值,字符串,公式),大边框样式 边框加粗,设置...

    PHPExcel带图片Excel表格导入导出

    在ThinkPHP5.0.10框架下使用PHPExcel实现带图片excel表格的导入导出功能。application\index\model\ExcelDown.php文件中,第93行加上判断if($res[$i][$data['field'][$j]]!='')改为if($res[$i][$data['field'][$j]]!...

    PHP导入和导出CSV EXCEL实例代码 mysql数据库

    本文将详述如何使用PHP来实现CSV和Excel文件的导入与导出,并结合MySQL数据库进行数据操作。以下是对给定文件信息的具体解析: 标题中的"PHP导入和导出CSV EXCEL实例代码"指的是使用PHP编写程序,实现对CSV(逗号...

    phpexcel PHP导入数据库

    用php,将excel内容导入mysql。代码注释非常详细,需要的下。。。。不懂的可以给我回信

    LaravelExcel基于PHPExcel在Laravel应用中导入和导出Excel和CSV文件

    LaravelExcel是一款强大的扩展库,基于PHPExcel库,用于在Laravel框架中方便地处理Excel和CSV文件的导入与导出。这个库极大地简化了在 Laravel 应用中处理大量数据时的工作流程,使得数据导入导出更加高效和灵活。 ...

    使用PHPExcel导入导出excel格式文件

    在IT行业中,处理数据是日常任务之一,而Excel作为广泛使用的电子表格软件,其格式的导入与导出功能对于...通过熟练掌握PHPExcel,开发者可以轻松地构建数据导入导出功能,提高工作效率,同时增强应用程序的用户体验。

    TP5的PHPExcel包实现导入导出功能

    标题 "TP5的PHPExcel包实现导入导出功能" 涉及到的是使用ThinkPHP5(简称TP5)框架结合PHPExcel库来处理Excel文件的导入和导出操作。这是一个常见的需求,特别是在数据处理、报表生成或者用户数据上传场景中。下面...

Global site tag (gtag.js) - Google Analytics