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 ...
随机推荐
- 搭建BCE本地开发环境
1. 在官网下载VirtualBox & 虚拟机 http://bce.baidu.com/doc/BAE/GUIGettingStarted.html#.E4.B8.8B.E8.BD.BD. ...
- PHP学习之中数组-遍历一维数组【2】
在PHP学习之中数组[1]中学会怎么创建一个数组,如果PHP学习之中数组[1]中的元素多的话,我们访问元素又是一个问题了,下面我们就使用for语句while,foreach来遍历我们的数组: < ...
- TatukGIS-TGIS_Editor.CreateShape
procedure CreateShape(const _layer: TObject; const _ptg: TGIS_Point3D; const _type: TGIS_ShapeType; ...
- Vim的学习心得
现在的工作是在unix平台,平时是用UE的ftp功能来写代码的,有时候文件大了,传输就很慢,而且经常不是很稳定.下定决心要学学Vim(现在应该没有人用原始的vi了吧),在经过二周的使用后,发现Vim实 ...
- 操作Json
C#可以像Javascript一样操作Json 阅读目录 Json的简介 Json的优点 传统操作Json 简易操作Json Json的简介 JSON(JavaScript Object Notati ...
- 【译】UI设计基础(UI Design Basics)--启动与停止(Starting and Stopping)(五)
2.4 启动与停止(Starting and Stopping) 2.4.1 立即启动(Start Instantly) 通常来讲,用户不会花超过两分钟的时候去评价一个新的应用.在这段有限的时间里 ...
- BZOJ 3872 Ant colony
Description There is an entrance to the ant hill in every chamber with only one corridor leading int ...
- 通过 IDE 向 Storm 集群远程提交 topology
转载: http://weyo.me/pages/techs/storm-topology-remote-submission/ http://www.javaworld.com/article/20 ...
- Netty4.0学习笔记系列之一:Server与Client的通讯
http://blog.csdn.net/u013252773/article/details/21046697 本文是学习Netty的第一篇文章,主要对Netty的Server和Client间的通讯 ...
- Struts2接收checkbox的值
Struts2接收checkbox的值: HTML: <input type="checkbox" name="ssl" value="B1 ...