YII使用PHPExcel导入Excel文件的方法
2014-01-09 09:21
561 查看
1、下载phpexcel,将压缩包中的classes复制到protected/extensions下并修改为PHPExcel。
2、修改YII配置文件config/main.php
(以下处理PHPExcel autoload和YII autoload相冲突的方法任选其一,推荐第4种,最符合YII标准)
3.1、修改PHPExcel中的Autoloader.php
修改为
3.2、按照下面的代码修改PHPExcel代码目录里的Autoloader.php文件
3.3、在需要使用PHPExcel时使用以下代码
3.4、只要设置Yii::$enableIncludePath为false,第三方类库就有了执行自己的autoload方法的机会,并且不需要配置config/main.php,非常方便灵活
-------------------------------------------------------------------------------
导入Excel文件方法
2、修改YII配置文件config/main.php
'import'=>array( 'application.extensions.PHPExcel.PHPExcel', ),
(以下处理PHPExcel autoload和YII autoload相冲突的方法任选其一,推荐第4种,最符合YII标准)
3.1、修改PHPExcel中的Autoloader.php
PHPExcel_Autoloader::Register(); PHPExcel_Shared_ZipStreamWrapper::register();
修改为
Yii::registerAutoloader(array('PHPExcel_Autoloader','Register'),true);
3.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()
3.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);
3.4、只要设置Yii::$enableIncludePath为false,第三方类库就有了执行自己的autoload方法的机会,并且不需要配置config/main.php,非常方便灵活
Yii::$enableIncludePath = false; Yii::import('application.extensions.PHPExcel.PHPExcel', 1);
-------------------------------------------------------------------------------
导入Excel文件方法
public function actionLoad() {
if(isset($_POST['submit'])) {
$file = CUploadedFile::getInstanceByName('file');//获取上传的文件实例
if($file->getType() == 'application/vnd.ms-excel') {
$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
$total_line = $phpexcel->getHighestRow();
$total_column = $phpexcel->getHighestColumn();
for ($row = 2; $row <= $total_line; $row++) {
$data = array();
for ($column = 'A'; $column <= $total_column; $column++) {
$data[] = trim($phpexcel->getCell($column.$row) -> getValue());
}
}
}
}
}
相关文章推荐
- ThinkPHP在IIS下配置ISAPI伪静态去掉index.php
- PHP的日期操作 增加/减少 很具参考价值
- PHP中foreach循环用法详解
- 关于PHP中的strtr和str_replace使用
- PHP CURL函数参数详尽中文说明(附实例)
- zendstudio破解
- PHP/MYSQL UTF8 中文排序
- 利用phpexcel把excel导入数据库和数据库导出excel实现
- codeigniter框架批量插入数据
- php实现分页工具类分享
- php权重计算方法代码分享
- php获取文件内容最后一行示例
- 浅析php数据类型转换
- php环境下利用session防止页面重复刷新的具体实现
- php基础
- PHP工程师笔试题
- PHP基础 mysqli的事务处理
- PHP的扩展类 mysqli_stmt:预处理类
- PHP的 Mysqli扩展库的多语句执行
- PHP基础文件下载类的简单封装