PHPExcel

来源:互联网 发布:nars和mac豆沙色哪个好 编辑:程序博客网 时间:2024/05/21 23:33

ThinkPHP---PHPExcel导入与导出

1、下载最新PHPExcel放到Vendor目录下,

       下载地址:http://phpexcel.codeplex.com/

        注意位置:ThinkPHP\Extend\Vendor\PHPExcel

2、在App\Common创建PHPExcel.php文件,然后添加两个方法

<?php/* * 导出Excel*/function exportExcel($expTitle,$expCellName,$expTableData,$tableHeader='',$defaultWidth=15){set_time_limit(0);$xlsTitle = iconv('utf-8', 'gb2312', $expTitle);//文件名称$fileName = $expTitle.date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定$cellNum = count($expCellName);$dataNum = count($expTableData);vendor("PHPExcel.PHPExcel");//设定缓存模式为经gzip压缩后存入cache(还有多种方式请百度)$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;$cacheSettings = array();PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);$objPHPExcel = new PHPExcel();$cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');$objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', $tableHeader);for($i = 0; $i < $cellNum; $i++){//垂直居中$objPHPExcel->setActiveSheetIndex(0)->getStyle($cellName[$i])->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);//水平居中$objPHPExcel->setActiveSheetIndex(0)->getStyle($cellName[$i])->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);//设置默认宽度$objPHPExcel->setActiveSheetIndex(0)->getColumnDimension($cellName[$i])->setWidth($defaultWidth);$objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);}// Miscellaneous glyphs, UTF-8for($i = 0; $i < $dataNum; $i++){for($j = 0; $j < $cellNum; $j++){$objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);}}@header('pragma:public');@header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');@header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');$objWriter->save('php://output');exit;}/* * 读取Excel文件 */function ImportExcel($filename){vendor("PHPExcel.PHPExcel");$objPHPExcel = new PHPExcel();$objReader = PHPExcel_IOFactory::createReaderForFile($filename);$objPHPExcel = $objReader->load($filename);$date = $objPHPExcel->getActiveSheet()->toArray();return $date;}/* * 引用方法 * load("@.PHPExcel");*/

3、导出

function expUser(){//导出Excel        $xlsName  = "User";        $xlsCell  = array(            array('id','账号序列'),            array('account','登录账户'),            array('nickname','账户昵称')        );        $xlsModel = M('Post');        $xlsData  = $xlsModel->Field('id,account,nickname')->select();        $this->exportExcel($xlsName,$xlsCell,$xlsData);    }

4、导入

function impUser(){     if(isset($_FILES["import"]) && ($_FILES["import"]["error"] == 0)){        $result = importExecl($_FILES["import"]["tmp_name"]);        if($result["error"] == 1){                    $execl_data = $result["data"][0]["Content"];                  foreach($execl_data as $k=>$v){                      ..这里写你的业务代码..                  }         }      } }


0 0
原创粉丝点击