Phalcon使用PHPExecl导出导入Execl文件
来源:互联网 发布:下载淘宝网app 编辑:程序博客网 时间:2024/05/20 18:51
Phalcon和PHPExecl简介
Phalcon 是开源、全功能栈、使用 C 扩展编写、针对高性能优化的 PHP 5 框架。 开发者不需要学习和使用 C 语言的功能, 因为所有的功能都以 PHP 类的方式暴露出来,可以直接使用。 Phalcon 也是松耦合的,可以根据项目的需要任意使用其他对象。Phalcon是一套实现MVC架构的高性能PHP应用程序框架。初始版本发布于2012年11月,开放源代码并基于BSD授权条款。与其他大部分的PHP框架不同,Phalcon是以扩展的方式以C语言所编写,因此Phalcon的执行速度高过其他PHP框架,并且消耗更少的资源,根据官方的测试,Phalcon是目前世界上速度最快的PHP框架, 没有之一。
PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
安装配置
首先下午PHPExecl 下载PHPExecl
然后解压,主要包括PHPExecl.php和PHPExcel文件夹(含有操作Execl的各种类)
放到Phalcon的项目下,如下图所示:
确保在自动加载时加载了该类,如下图所示:
导出Execl
public function createexcelAction($ln_id, $ln_name) { $this->view->disable(); $records = Lognodeitem::find("belong_ln_id=$ln_id"); //从数据库里获取数据 //新建execl $resultPHPExcel = new PHPExcel(); //设置第一行 $resultPHPExcel->getActiveSheet()->setCellValue('A1', 'id'); $resultPHPExcel->getActiveSheet()->setCellValue('B1', 'belong_ln_id'); $resultPHPExcel->getActiveSheet()->setCellValue('J1', 'mail_obj'); $resultPHPExcel->getActiveSheet()->setCellValue('K1', 'owner'); $resultPHPExcel->getActiveSheet()->setCellValue('L1', 'status'); //设值 $i = 2; foreach ($records as $rule) { $resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $rule->id); $resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $rule->belong_ln_id); $resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $rule->conditions); $resultPHPExcel->getActiveSheet()->setCellValue('J' . $i, $rule->mail_obj); $resultPHPExcel->getActiveSheet()->setCellValue('K' . $i, $rule->owner); $resultPHPExcel->getActiveSheet()->setCellValue('L' . $i, $rule->status); $i++; } //设置导出文件名 $outputFileName = $ln_name . '.xls'; //设置导出参数 $xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $outputFileName . '"'); header("Content-Transfer-Encoding: binary");// header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); $xlsWriter->save($outputFileName); echo file_get_contents($outputFileName); }
导入Execl
function uploadFile($file, $filetempname) { //自己设置的上传文件存放路径 $filePath = '/tmp/'; $str = ""; //注意设置时区 $time = date("y-m-d-H-i-s");//当前上传的时间 //获取上传文件的扩展名 $extend = strrchr($file, '.'); //上传后的文件名 $name = $time . $extend; $uploadfile = $filePath . $name;//上传后的文件名地址 //move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。 $result = move_uploaded_file($filetempname, $uploadfile);//假如上传到当前目录下 if ($result) //如果上传文件成功,就执行导入excel操作 { $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format $objPHPExcel = $objReader->load($uploadfile); $objWorksheet = $objPHPExcel->getActiveSheet(); $highestRow = $objWorksheet->getHighestRow(); //在导入时,启动行号为1,第1行为标题,第2行开始为数据 if ($highestRow > 1) { $highestColumn = $objWorksheet->getHighestColumn(); $highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数 $data_res = []; //注意下面以$row=2开始,在导入时,启动行号为1,第1行为标题,第2行开始为数据 for ($row = 2; $row <= $highestRow; $row++) { $strs = array(); //注意highestColumnIndex的列数索引从0开始 for ($col = 0; $col < $highestColumnIndex; $col++) { $strs[$col] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue(); } array_push($data_res, $strs); } } else { return json_encode(array('state' => 1, 'message' => '数据太少,无法导入')); } unlink($uploadfile); //删除上传的文件 return json_encode(array('state' => 0, 'message' => '成功获得规则数据', 'data' => $data_res)); } else { return json_encode(array('state' => 2, 'message' => '文件上传失败')); } }
初学PHP没多久,代码写得不严谨,请大家包含!
0 0
- Phalcon使用PHPExecl导出导入Execl文件
- 【PHPExecl】PHP简单实现Execl的导入导出【原创】
- 使用phpexecl导出数据
- phpExecl导出
- MySQL 导入导出Execl
- laravel 导入导出Execl
- asp.net中Execl文件的导入导出
- Execl (转)导入导出execl 全
- phpExecl 生成 execl 的方法
- 使用POI操作EXECL做数据的导入与导出
- C#导出Execl文件
- 保存导出execl文件
- C#导出execl文件
- execl 导出文件
- php导出execl文件
- 导出execl文件
- DevExpress.XtraGrid Execl导入导出
- php导入导出execl方法
- Spring AOP
- 谈图像处理
- iOS 到处 ipa包的时候 会有四个选项分别代表什么
- cocos2dx CCFileUtils::sharedFileUtils() 静态调用
- 线程池
- Phalcon使用PHPExecl导出导入Execl文件
- 深度学习(多变量线性回归)
- 数据结构——19 判断是否是二叉排序树
- Android第三方支付
- FragmentPagerAdapter与FragmentStatePagerAdapter区别
- 用宏 求 x y z,找出最大值最小值
- 初始化
- OC-封装/拆包
- Git 常用命令整理