//批量导入文章   excel读取
	public function importdata ( $filename, $tmp_name ) {
		//设置超时时间
		set_time_limit(0);

		$rootPath = OA_FILES_ROOT.'/' ;

		//引入phpexcel
		// $_SERVER["WL_OA"] = 'E:/www/2.151/oa/web';
        $_SERVER["WL_OA"] = '/opt/wwwroot/wl/oa/web';
		require($_SERVER["WL_OA"] . "/Classes/PHPExcel.php");
		require($_SERVER["WL_OA"] . "/Classes/PHPExcel/IOFactory.php");
		require($_SERVER["WL_OA"] . "/Classes/PHPExcel/Reader/Excel5.php");

		//判断文件格式
		$path_parts = pathinfo($filename) ;
        $extension = strtolower($path_parts['extension']) ;
        if ( !in_array($extension, array('xls','xlsx'))) {
            wl_set_operation_msg ( "文件格式不正确,请重新选择", 2, bd_oa_url ( 'helpcenter/manage_article' ), 3 );
        }

        //上传后的文件名
        $randName = substr(md5(rand(10,99)), 0,4) ;
        $name = date('YmdHis').$randName.'.'.$extension ;
        $realFile = $rootPath.$name;  //上传后的文件名地址
        //移动上传文件
        $result = move_uploaded_file( $tmp_name, $realFile );
        if ( $result ) {

        	$PHPExcel = new PHPExcel() ;
	        $PHPReader = new PHPExcel_Reader_Excel2007();

	        if( !$PHPReader->canRead($realFile) ){
	             $PHPReader = new PHPExcel_Reader_Excel5();
	              if( !$PHPReader->canRead( $realFile ) ){
	                  wl_set_operation_msg ( "文件不可读,请重新选择", 2, bd_oa_url ( 'helpcenter/manage_article' ), 3 );
	                  return false;
	              }
	        }

	        $_excelData = array() ;
	        //读取excel
        	$PHPExcel = $PHPReader->load( $realFile );
        	//获取工作表的数目
        	$sheetCount = $PHPExcel->getSheetCount();

        	for ( $i = 0; $i < $sheetCount; $i++ ) {
        		$_currentSheet = $PHPExcel->getSheet( $i ) ;

        		$_allRow = $_currentSheet->getHighestRow(); //获取Excel中信息的行数
        		$_allColumn = $_currentSheet->getHighestColumn();//获取Excel的列数

        		$highestRow = intval( $_allRow ) ;
        		$highestColumn = PHPExcel_Cell::columnIndexFromString($_allColumn);//有效总列数

        		for( $row = 2; $row <= $highestRow; $row++ ) {
        			$_excelData['onecatalog']   = $_currentSheet->getCellByColumnAndRow(0, $row)->getValue() ;
        			$_excelData['twocatalog']   = $_currentSheet->getCellByColumnAndRow(1, $row)->getValue() ;
        			$_excelData['threecatalog'] = $_currentSheet->getCellByColumnAndRow(2, $row)->getValue() ;
        			$_excelData['title']        = $_currentSheet->getCellByColumnAndRow(3, $row)->getValue() ;
        			$_excelData['content']      = $_currentSheet->getCellByColumnAndRow(4, $row)->getValue() ;

        			if ( empty($_excelData['onecatalog']) || empty($_excelData['twocatalog']) || empty($_excelData['threecatalog']) ) {
        				self::add_log( array('sType'=>"导入失败",'doContent'=>$filename." 下 Sheet".($i+1)." 中第 ".$row." 行导入失败",'iUid'=>$this->loginedUid,'doTime'=>date("Y-m-d H:i:s"))) ;
        				unset( $_excelData ) ;
        				continue ;
        			}
        			if ( !is_string( $_excelData['title'] ) || !is_string( $_excelData['content'] ) || empty($_excelData['title']) || empty($_excelData['content']) ) {
        				self::add_log( array('sType'=>"导入失败",'doContent'=>$filename." 下 Sheet".($i+1)." 中第 ".$row." 行导入失败",'iUid'=>$this->loginedUid,'doTime'=>date("Y-m-d H:i:s"))) ;
        				unset( $_excelData ) ;
        				continue ;
        			}                   //插入数据库
        			if ( !self::doData( $_excelData ) ) {
        				unset( $_excelData ) ;
        				continue ;
        			}
        			unset($_excelData);
        		}
        	}
        	return true ;
        }else{
        	wl_set_operation_msg ( "文件上传失败,请重新选择", 2, bd_oa_url ( 'helpcenter/manage_article' ), 3 );
        }
	}

  

PHPExcel读取excel的多个sheet存入数据库的更多相关文章

  1. PHPExcel读取excel文件示例

    PHPExcel读取excel文件示例PHPExcel最新版官方下载网址:http://phpexcel.codeplex.com/PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包 ...

  2. 利用PHPExcel读取Excel的数据和导出数据到Excel

    PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel.也是我们日常开发中,经常会遇到的使用场景.比如有个客户信息表,要批量导出发给同事,我 ...

  3. (实用篇)PHPExcel读取Excel文件的实现代码

    用PHPExcel读取Excel 2007 或者Excel2003文件,需要的朋友,可以参考下. 涉及知识点:  php对excel文件进行循环读取 php对字符进行ascii编码转化,将字符转为十进 ...

  4. PHP使用phpexcel读取excel文件

    PHP读取excel文件 require("Classes/PHPExcel.php"); require("Classes/PHPExcel/IOFactory.php ...

  5. ThinkPHP3.2.3 PHPExcel读取excel插入数据库

    版本 ThinkPHP3.2.3 下载PHPExcel 将这两个文件放到并更改名字 excel文件: 数据库表: CREATE TABLE `sh_name` ( `name` varchar(255 ...

  6. PHPExcel读取Excel文件的实现代码

    <?php require_once 'PHPExcel.php'; /**对excel里的日期进行格式转化*/ function GetData($val){ $jd = GregorianT ...

  7. thinkphp用phpexcel读取excel,并修改列中的值,再导出excel,带往excel里写入图片

    <?php class GetpriceAction extends AdministratorAction { // 文件保存路径 protected $savepath; // 允许上传的文 ...

  8. 利用PHPExcel读取excel文件

    $filePath = "7788.xls"; $PHPExcel = new PHPExcel(); $PHPReader = new PHPExcel_Reader_Excel ...

  9. 解析Excel文件并把数据存入数据库

    前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致 ...

随机推荐

  1. Bash 中的 _ 是不是环境变量

    首先,我们想到的会是 export(等价于 declare -x)命令: $ export | grep 'declare -x _=' 没有找到,那么结论就是 _ 不是环境变量?当然没那么简单,否则 ...

  2. (Python)继承

    面向对象的另一个特性是继承,继承可以更好的代码重用. 例如一个学校里面的成员有老师.学生.老师和学生都有共同的属性名字和年纪.但老师还有它自己的属性,如工资.学生也有它的属性,如成绩. 因此我们可以设 ...

  3. Linux 下源码包安装MariaDB

    .8.5]# cd cmake-2.8.5 [root@zabbix_server cmake-2.8.5]# ./bootstrap [root@zabbix_server cmake-2.8.5] ...

  4. 第三篇、CSS样式简介

    <!--1.行内样式 <p style="background-color:red;font-size:20px"> --> <!--2.页内样式 & ...

  5. jQuery AJAX load() 方法

    jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector). ...

  6. Android获取屏幕分辨率及DisplayMetrics简介

    Android 可设置为随着窗口大小调整缩放比例,但即便如此,手机程序设计人员还是必须知道手机屏幕的边界,以避免缩放造成的布局变形问题. 手机的分辨率信息是手机的一项重要信息,很好的是,Android ...

  7. java web简易网上书店项目系列,使用MVC模式(servlet+jstl+dbutils),开篇

    一. 针对很多java web初学者入门困难的问题,笔者利用一个小型web项目,一步一步的展示java web开发方法,每一个章节引入一些java web开发的重点知识,让同学们可以将java web ...

  8. 【微服务No.2】polly微服务故障处理库

    熔断.降级: 熔断:熔断就是我们常说的“保险丝”,意为当服务出现某些状况时,切断服务,从而防止应用程序不断地常识执行可能会失败的操作造成系统的“雪崩”,或者大量的超时等待导致系统卡死等情况,很多地方也 ...

  9. [PHP] php + phpstudy + phpstrom + xdebug + postman开启调试

    主体 php + phpstudy + phpstrom + xdebug + postman + vue + chrome 使用的是前后端分离的开发方式,vue 在 webpack 通过代理进行请求 ...

  10. 【P2303】Longge的问题

    题目大意:求\[\sum\limits_{i=1}^ngcd(n,i)\] 题解:发现 gcd 中有很多是重复的,因此考虑枚举 gcd. \[\sum\limits_{i=1}^ngcd(n,i)=\ ...