yii phpexcel <转>
原文详情参见 这里
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());
- }
- }
- }
- }
- }
yii phpexcel <转>的更多相关文章
- yii phpexcel自己主动生成文件保存到server上
近期再整一个报表任务,每天必须把表导出来按excel格式发送邮件给管理员,利用phpexcel把表保存到server上.然后再通过phpmailer发送就ok. ob_end_clean(); ...
- Yii中使用PHPexcel获取excel中数据
1.view中代码如下: <form name="frmBatchSettle" id="" action="" method=&qu ...
- Yii框架中使用PHPExcel导出Excel文件
最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config\main.php中添加对PHPExcel的引用,我的方式是这样: 1 2 3 4 ...
- Yii中使用PHPExcel导出Excel
最近在研究PHP的Yii框架,很喜欢,碰到导出Excel的问题,研究了一下,就有了下面的方法: 1.首先在config/main.php中添加对PHPExcel的引用,我的方式是这样: // auto ...
- 在Yii框架中使用PHPExcel
PHPExcel是一个比较好用的php读取excel文件的类库,今天遇到了在yii中如何加载PHPExcel类文件的问题,因为Yii的autoload机制是安装类名去找文件,即文件名就是相应的类名,而 ...
- YII使用PHPExcel导入Excel文件的方法
1.下载phpexcel,将压缩包中的classes复制到protected/extensions下并修改为PHPExcel. 2.修改YII配置文件config/main.php 'import'= ...
- Yii 集成 PHPExcel读取Excel文件
PHPexcel官方下载以后,放入Yii的protected\extensions\phpexcel下面 try { spl_autoload_unregister(array('YiiBase', ...
- PHPExcel yii2 加载使用
除了用composer 包管理组件的方式外 我们还可以使用 直接最原始的加载方式---超级简单 1.PHPExcel上下载最新的PHPExcel http://phpexcel.codeplex.co ...
- PHPExcel中文开发手册翻译版(2)
2016年8月18日12:45:14 请注意这个是粗翻译版,仅供参考,不是精校版 精校版后面才会更新 PHPExcel开发者文档 1.目录 2. 4先决条件 2.1.软件要求4 2.2.安装说明4 2 ...
随机推荐
- utf8_general utf8_general utf8_bin区别
对与general来说 ß = s 是为true的 但是对于unicode来说 ß = ss 才是为true的, 其实他们的差别主要在德语和法语上,所以对于我们中国人来说,一般使用general,因为 ...
- iOS 取得CGimage字节数据的方法
通过我在网上搜索和总结,目前看来,我发现两种比较方便的方式. 1. CGImage -> CGDataProvider -> CFData -> xx * CGDataProvide ...
- [转] Java 8的新特性
简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性.在本文中我们将学习这些新特性,并用实际的例子 ...
- 【译】UI设计基础(UI Design Basics)--为iOS设计(Design for iOS)(二)
2.1 为iOS设计(Design for iOS) iOS体现以下主题: 遵从:UI帮助用户理解界面内容并与内容交互,但绝不会与内容相互冲突. 清晰:文本在任何尺寸下都是清晰易读,图标精确易懂,装饰 ...
- 通过PHP连接MYSQL数据库 创建数据库 创建表
通过PHP连接MYSQL数据库 $conn = mysql_connect("localhost","root","password") ...
- Netty4.0学习笔记系列之一:Server与Client的通讯
http://blog.csdn.net/u013252773/article/details/21046697 本文是学习Netty的第一篇文章,主要对Netty的Server和Client间的通讯 ...
- 工作那些事(二)应聘时填写个人信息ABCD
先看看都有那些: 公司A: 填写来访人员登记表(在前台的那种),内容包括: 姓名.时间.电话.职位. 公司B: 填写来访人员登记表(在前台的那种),内容包括: 姓名.时间.电话.身份证号码().事由( ...
- 【HDOJ】2717 Catch That Cow
bfs. /* 2717 */ #include <iostream> #include <cstdio> #include <cstring> #include ...
- LNMP搭建(CentOS 6.3+Nginx 1.2.0+PHP 5.3.15(fpm)+ MySQL 5.5.35)
Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 ...
- iOS __block用法
没有__block qualifier的primitive c types会直接在创建block的时候被capture到block里.有__block qualifier的话,会在调用block的时候 ...