PHP头条
热点:

Yii使用PHPExcel导入Excel文件的方法


Yii 使用PHPExcel导入Excel文件的方法,具体步骤如下:

一,PHPEXCEL 包下载页面:http://phpexcel.codeplex.com/

二,将压缩包中的 classes 目录复制到 protected/extensions 下并修改为 PHPExcel。

三,修改YII配置文件 config/main.php

......
'import'=>array(
	......
    'application.extensions.PHPExcel.PHPExcel',
	......
),
......

四,创建控制器

(以下为处理 PHPExcel autoload 和 YII autoload 相冲突的方法,任选其一,推荐第4种,最符合YII标准,也最方便)

4.1、修改PHPExcel中的Autoloader.php

PHPExcel_Autoloader::Register();
PHPExcel_Shared_ZipStreamWrapper::register();

修改为

Yii::registerAutoloader(array('PHPExcel_Autoloader','Register'),true);

4.2、按照下面的代码修改PHPExcel代码目录里的Autoloader.php文件

......
public static function Register() {
    /*
    if (function_exists('__autoload')) {
        //Register any existing autoloader function with SPL,so we don't get any clashes
        spl_autoload_register('__autoload');
    }
    //Register ourselves with SPL
    return spl_autoload_register(array('PHPExcel_Autoloader','Load'));
    */
    $functions=spl_autoload_functions();
    foreach($functions as  $function)
        spl_autoload_unregister($function);
    $functions=array_merge(array(array('PHPExcel_Autoloader','Load')),$functions);
    foreach($functions as $function)
        $x=spl_autoload_register($function);
    return $x;
} // function Register()
......

4.3、在需要使用PHPExcel时使用以下代码

$filePath='/home/public_html/sqt/protected/data/queueSql/company.xls';
spl_autoload_unregister(array('YiiBase','autoload'));
$phpExcelPath=Yii::getPathOfAlias('application.extensions.PHPExcel.PHPExcel');
include($phpExcelPath.DIRECTORY_SEPARATOR.'IOFactory.php');
spl_autoload_register(array('YiiBase','autoload'));
$PHPExcel=PHPExcel_IOFactory::load($filePath);

4.4、只要设置Yii::$enableIncludePath为false,第三方类库就有了执行自己的autoload方法的机会,并且不需要配置config/main.php,非常方便灵活

Yii::$enableIncludePath=false;  
Yii::import('application.extensions.PHPExcel.PHPExcel',1);

导入Excel文件方法

<?php
$file=CUploadedFile::getInstanceByName('repair_attached_file');//获取上传的文件实例
if(in_array($file->getExtensionName(),array('xls','xlsx'))){
	$excelFile=$file->getTempName();//获取文件名
	//这里就是导入PHPExcel包了,要用的时候就加上如下这么两句
	Yii::$enableIncludePath=false;
	Yii::import('application.extensions.PHPExcel.PHPExcel',1);
	$phpexcel=new PHPExcel;
	$excelReader=PHPExcel_IOFactory::createReader('Excel5');
	$phpexcel=$excelReader->load($excelFile)->getSheet(0);//载入文件并获取第一个sheet
	Yii::$enableIncludePath=true;//及时的还原yii的自动加载模式
	$total_line=$phpexcel->getHighestRow();//总行数
	$total_column=$phpexcel->getHighestColumn();//总列数
	if($total_line>1){
		for($row=2;$row<=$total_line;$row++){
			$data=array();
			for($column='A';$column<=$total_column;$column++){
				$data[]=trim($phpexcel->getCell($column.$row)->getValue());
			}
			//一行行的插入数据库操作
			$_model=clone $this->model;
			$_model->name=$data[0];
			$_model->sex=$data[1];
			$_model->add_time=time();
			$_model->insert();
		}
	}
}

您可能感兴趣的文章

  • yii 数据库添加,修改,删除相关操作总结
  • Yii常用路径方法总结
  • Yii中的数据库事务的使用方法小结
  • PHP导出excel文件总结
  • 将yii对象结果转为数组的方法
  • yii数据库查询操作总结
  • php导入excel方法分享
  • php error_log() 将错误信息写入一个文件

www.phpzy.comtrue/php/2223.htmlTechArticleYii使用PHPExcel导入Excel文件的方法 Yii 使用PHPExcel导入Excel文件的方法,具体步骤如下: 一,PHPEXCEL 包下载页面:http://phpexcel.codeplex.com/ 二,将压缩包中的 classes 目录复制到 protected/exten...

相关文章

    暂无相关文章
相关频道:

PHP之友评论

今天推荐