- 浏览: 32816 次
- 性别:
- 来自: 广州
最新评论
用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数据库表导出
它允许开发者通过编程方式处理Excel文件,从而实现数据的导入和导出。要使用PHPExcel,你需要先将其下载并引入到你的PHP项目中。 导入PHPExcel库后,你需要创建一个PHP脚本来读取Excel文件。可以使用`PHPExcel_...
本篇文章将详细探讨如何在ThinkPHP5框架中结合PHPExcel来实现导入导出功能。 首先,我们了解下ThinkPHP5。它是一个轻量级的PHP框架,基于MVC(Model-View-Controller)设计模式,提供了丰富的内置功能和良好的性能...
标题中的“利用phpexcel把excel导入数据库和数据库导出excel实现”是指使用PHPExcel库来处理Excel文件,以便与数据库进行交互。这个过程包括从Excel文件读取数据并将其存储到数据库,以及从数据库中提取数据并写入到...
这里的"PHPExcel 1.8 Excel导入导出"是指使用PHPExcel 1.8版本进行Excel数据的导入和导出操作。 首先,我们需要理解PHPExcel的核心概念。它提供了一个对象模型,可以创建、读取和修改Excel文件。在1.8版本中,主要...
下面我们将详细讨论如何利用PHPExcel来实现Excel数据导入到数据库的过程。 1. **安装PHPExcel库** 在开始之前,你需要先在项目中引入PHPExcel库。你可以通过Composer(PHP的依赖管理工具)来安装,命令如下: ```...
phpExcel导入excel文件,对导入的文件限定导入列数,并将符合格式的写入数据库。
总结一下,通过ThinkPHP 3.2和PHPExcel的结合,我们可以实现高效的数据导入导出功能。理解并掌握这两个工具的使用,对于处理大量数据的Web应用来说,是非常有价值的。在实际操作中,不断实践和优化,可以让你的代码...
在PHP开发中,处理Excel文件是一项常见的任务,特别是在数据导入导出、报表生成等领域。`phpExcel`是一个广泛使用的PHP库,它允许开发者创建、读取和修改Microsoft Excel文件,即使这些文件包含图像。本篇文章将深入...
在您的项目中,您提到的重点是“phpexcel导入导出,html格式导出”,这涉及到如何使用PHPExcel处理不同类型的文件格式以及如何生成HTML格式的导出。 1. PHPExcel导入导出: PHPExcel库提供了一个方便的API,用于...
提供的示例代码通常会涵盖基本的导入导出操作以及更复杂的任务,如合并单元格、设置边框和填充色、条件格式化等。开发者可以根据这些示例来编写自己的代码,以满足特定的需求。 5. **性能优化** 大量数据处理时,...
1,建立mysql数据库,把excel_demo.sql导入到你的数据库,采取utf-8编码; 2,导入时候请按照xls/demo.xls的格式导入,在linux系统下 xls目录要有下的权限; 3, 默认只有一条数据,导出至少有一条数据; 4,如果数据...
分享一个利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel的类。根据时间生成采购报表,实例化excel类,设置选定sheet表名,合并单元格 给单元格赋值(数值,字符串,公式),大边框样式 边框加粗,设置...
在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实例代码"指的是使用PHP编写程序,实现对CSV(逗号...
用php,将excel内容导入mysql。代码注释非常详细,需要的下。。。。不懂的可以给我回信
LaravelExcel是一款强大的扩展库,基于PHPExcel库,用于在Laravel框架中方便地处理Excel和CSV文件的导入与导出。这个库极大地简化了在 Laravel 应用中处理大量数据时的工作流程,使得数据导入导出更加高效和灵活。 ...
在IT行业中,处理数据是日常任务之一,而Excel作为广泛使用的电子表格软件,其格式的导入与导出功能对于...通过熟练掌握PHPExcel,开发者可以轻松地构建数据导入导出功能,提高工作效率,同时增强应用程序的用户体验。
标题 "TP5的PHPExcel包实现导入导出功能" 涉及到的是使用ThinkPHP5(简称TP5)框架结合PHPExcel库来处理Excel文件的导入和导出操作。这是一个常见的需求,特别是在数据处理、报表生成或者用户数据上传场景中。下面...