//批量导入文章   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. Node.js的net模块

    net模块提供了一个异步网络包装器,用于TCP网络编程,它包含了创建服务器和客户端的方法 创建TCP服务器 net.createServer方法 创建客户端去连接服务器 net.connect方法 简 ...

  2. Codeforces VK Cup 2012 Round 3 A. Variable, or There and Back Again(dfs)

    题目链接:http://codeforces.com/problemset/problem/164/A 思路:用vector分别保留原图和发图,然后分别从val值为1的点正向遍历,va值为2的点反向遍 ...

  3. 利用Session实现一次验证码

    Session可避免表单的重复提交:实现一次表单提交,可避免恶意提交: 1.首先建立一个Servlet类:ValidateColorServlet,里边有获取验证码的方法,并且验证码是大小写区分: p ...

  4. C# 事务处理

    前言: 通常SqlHelper类为了方便处理,做成了静态类,静态类的问题是不方便添加事务处理. 实例化类方便添加事务处理,DoTrans/CommitTrans/RollBackTrans  三个函数 ...

  5. SpringMVC + Spring + MyBatis 学习笔记:为MyBatis增加打印SQL功能 (最简化配置)

    系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 1.以下jar包拷贝到 ...

  6. sql深入理解

    我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我们还能保证下一段时间系统还能流畅的运行吗?我们还 ...

  7. javascript写的新闻滚动代码

    在企业站中,我们会看到很多新闻列表很平滑的滚动,但是这种功能自己写太浪费时间,下面是我整理好的一组很常用的新闻列表滚动,有上下分页哦! 1.body里面 <div class="tz_ ...

  8. Android AudioPolicyService和AudioPolicyManager

    AudioPolicyService是Android音频系统的两大服务之一,另一个服务是AudioFlinger,这两大服务都在系统启动时有 MediaSever加载,加载的代码位于:framewor ...

  9. javascript基础-表单

    图解:   表单只需要知道常用的,其他的了解原理就行.在实际项目中,序列化一般用库(jquery)带的方法.富文本引用组件.

  10. 获取View组件宽度以及ViewTreeObserver

    View宽高测量方法: 测量方法有三种,如下: 1)(直接在onCreate()执行) ,View.MeasureSpec.UNSPECIFIED); ,View.MeasureSpec.UNSPEC ...