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 ...
随机推荐
- jquery 自定义tab
<!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11.1.min.js&qu ...
- php生成缩略图
<?php /** * 生成缩略图函数(支持图片格式:gif.jpeg.png和bmp) * @author ruxing.li * @param string $src 源图片路径 * @pa ...
- Day14 html简介
初识html <!DOCTYPE html> <html lang="en"> <head> <!--自闭合标签--> <me ...
- bzoj3140: [Hnoi2013]消毒
Description 最近在生物实验室工作的小T遇到了大麻烦. 由于实验室最近升级的缘故,他的分格实验皿是一个长方体,其尺寸为a*b*c,a.b.c 均为正整数.为了实验的方便,它被划分为a*b*c ...
- 工业CF卡与商业CF卡对比
工业CF卡:1.SLC FLASH芯片 .每个区块读写次数为10万次 2.可分区 识别为本地磁盘 3.平均写入技术.ECC自动校验技术 4.完全模拟硬盘引导系统开机,支持长期稳定工作 商业CF卡:1. ...
- JFS与JFS2的区别
请问一下JFS与JFS2的区别? 支持最大的文件? 普通JFS:2G:支持大文件JFS:64G:JFS2:1T 支持最大的文件系统?普通JFS,支持大文件JFS,JFS2分别是多大呢? The max ...
- [LeetCode#136, 137]Single Number, Single Number 2
The question: Single Number Given an array of integers, every element appears twice except for one. ...
- ZOJ-2008-Invitation Cards(dijkstra)
题意: 在有向加权图中G(V,E),邮局要从起点S向其他n个节点发送邮件,于是派出n个邮递员,分别到达其他n个地点发送,然后回到起点S,求出所有邮递员所经过的总路程的最小值. 分析: 正向一次dijk ...
- 字符串(广义后缀自动机):BZOJ 3926 [Zjoi2015]诸神眷顾的幻想乡
3926: [Zjoi2015]诸神眷顾的幻想乡 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 843 Solved: 510[Submit][St ...
- Delphi NativeXml用法攻略
NativeXml用法攻略 NativeXml可以在官网上下载,下载后将文件夹放在指定地方,打开DELPHI在其环境变量中引用NativeXml路径,然后在程序中引用NativeXml单元,我们就可以 ...