PHPExcel导出功能
Web开发的时候,经常会遇到需要将数据库中某些表单导出到excel文件中的问题。我在运用yii框架做web开发过程中,发现有个应用为PHPExcel,该应用能够实现excel文件的导入导出,刚好能够满足需要的要求。一下是自己应用 PHPExcel 做数据导出的记录。
1、首先下载该应用,github链接为:https://github.com/PHPOffice/PHPExcel
2、在 protected/extensions 路径下建立 PHPexcel 目录,将下载的 PHPExcel 文件解压。
3、将解压后的classes目录下所有内容,拷贝放到protected/extensions/PHPexcel 目录下
4、在控制器文件 XXX.Controller.php 中,先引入相关文件
<?phpYii::import ('application.extensions.*');require_once('PHPExcel/PHPExcel.php');require_once 'PHPExcel/PHPExcel/Writer/Excel5.php'; // 用于其他低版本xlsrequire_once 'PHPExcel/PHPExcel/Writer/Excel2007.php'; // 用于 excel-2007 格式...
5、编写方法Download(以下是自己开发过程中的部分代码)
public function actionDownload($option) { // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set properties $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); //$objPHPExcel->getActiveSheet()->mergeCells('A1:G1'); //$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true); //$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(20); //$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(20); $subjects = Subject::model()->findAll("headteacher=:name", array(":name" => Yii::app()->session['name'])); //找出相关课程组 foreach ($subjects as $item1) { $criteria = new CDbCriteria; // 创建CDbCriteria对象 $criteria->addCondition("suid = :id"); $criteria->params[':id'] = $item1->id; $criteria->select = '*'; //按照返回参数搜索选题信息 if ($option == 1) { $criteria->order = 'Cid'; //$criteria -> limit = 3; $b = Selectcourse::model()->findAll($criteria); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '选题情况') ->setCellValue('A2', '学生ID') ->setCellValue('B2', '学生姓名') ->setCellValue('C2', '课程名称') ->setCellValue('D2', '题目名称') ->setCellValue('E2', '选题时间'); $count = 2; foreach ($b as $item2) { $count += 1; $l1 = "A" . "$count"; $l2 = "B" . "$count"; $l3 = "C" . "$count"; $l4 = "D" . "$count"; $l5 = "E" . "$count"; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($l1, $item2->sid) ->setCellValue($l2, Student::model()->find(array('condition' => 'id=' . $item2->sid,))->name) ->setCellValue($l3, $item1->name) ->setCellValue($l4, Course::model()->find(array('condition' => 'Cid=' . $item2->cid,))->Cname) ->setCellValue($l5, $item2->apply_time); } } if ($option == 2) { $criteria->order = 'sid'; //$criteria -> limit = 3; $b = Selectcourse::model()->findAll($criteria); $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '选题情况') ->setCellValue('A2', '学生ID') ->setCellValue('B2', '学生姓名') ->setCellValue('C2', '课程名称') ->setCellValue('D2', '题目名称') ->setCellValue('E2', '选题时间'); $count = 2; foreach ($b as $item2) { $count += 1; $l1 = "A" . "$count"; $l2 = "B" . "$count"; $l3 = "C" . "$count"; $l4 = "D" . "$count"; $l5 = "E" . "$count"; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($l1, $item2->sid) ->setCellValue($l2, Student::model()->find(array('condition' => 'id=' . $item2->sid,))->name) ->setCellValue($l3, $item1->name) ->setCellValue($l4, Course::model()->find(array('condition' => 'Cid=' . $item2->cid,))->Cname) ->setCellValue($l5, $item2->apply_time); } } } // Rename sheet $objPHPExcel->getActiveSheet()->setTitle('学生选题信息'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Excel5) header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="学生选题信息.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); }
6、不要忘了在用户访问控制里面添加动作download
public function accessRules(){array('allow', // allow admin user to perform 'admin' and 'delete' actions 'actions' => array('download'), 'roles' => array('...'), ),}
7、在对应的view文件中,编写链接
<?php echo CHtml::link(CHtml::encode("》导出Excel表格"), array('download','option' => $option)); ?>
8、完成将数据以excel文件导出。
以上是自己对PHPExcel的一个应用,因为是初次接触,用的也不熟练,难免有一些不当,望大家指出,共同进步!

tomodifyDatainAphPessess, startSessionstession_start (), 그런 다음 $ _sessionToset, modify, orremovevariables.

배열은 PHP 세션에 저장할 수 있습니다. 1. 세션을 시작하고 session_start ()를 사용하십시오. 2. 배열을 만들고 $ _session에 저장하십시오. 3. $ _session을 통해 배열을 검색하십시오. 4. 세션 데이터를 최적화하여 성능을 향상시킵니다.

PHP 세션 쓰레기 수집은 만료 된 세션 데이터를 정리하기위한 확률 메커니즘을 통해 트리거됩니다. 1) 구성 파일에서 트리거 확률 및 세션 수명주기를 설정합니다. 2) CRON 작업을 사용하여 고재 응용 프로그램을 최적화 할 수 있습니다. 3) 데이터 손실을 피하기 위해 쓰레기 수집 빈도 및 성능의 균형을 맞춰야합니다.

PHP의 사용자 세션 활동 추적은 세션 관리를 통해 구현됩니다. 1) Session_start ()를 사용하여 세션을 시작하십시오. 2) $ _session 배열을 통해 데이터를 저장하고 액세스하십시오. 3) 세션 _destroy ()를 호출하여 세션을 종료합니다. 세션 추적은 사용자 행동 분석, 보안 모니터링 및 성능 최적화에 사용됩니다.

데이터베이스를 사용하여 PHP 세션 데이터를 저장하면 성능 및 확장 성을 향상시킬 수 있습니다. 1) 세션 데이터를 저장하기 위해 MySQL 구성 : php.ini 또는 php 코드에서 세션 프로세서를 설정하십시오. 2) 사용자 정의 세션 프로세서 구현 : 데이터베이스와 상호 작용하기 위해 열린, 닫기, 읽기, 쓰기 및 기타 기능을 정의합니다. 3) 최적화 및 모범 사례 : 인덱싱, 캐싱, 데이터 압축 및 분산 스토리지를 사용하여 성능을 향상시킵니다.

phpsessionstrackuserdataacrossmultiplepagerequestsususingauniqueIdStoredInAcookie.here'showtomanagetheMeftically : 1) STARTASESSIONSTART_START () andSTAREDATAIN $ _SESSION.2) RegenerATERATESSESSIDIDAFTERLOGINWITHSESSION_RATERATERATES (True) TopreventSES

PHP에서 세션 데이터를 통한 반복은 다음 단계를 통해 달성 할 수 있습니다. 1. Session_start ()를 사용하여 세션을 시작하십시오. 2. $ _session 배열의 모든 키 값 쌍을 통해 Foreach 루프를 통과합니다. 3. 복잡한 데이터 구조를 처리 할 때 is_array () 또는 is_object () 함수를 사용하고 print_r ()를 사용하여 자세한 정보를 출력하십시오. 4. Traversal을 최적화 할 때 페이징을 사용하여 한 번에 많은 양의 데이터를 처리하지 않도록 할 수 있습니다. 이를 통해 실제 프로젝트에서 PHP 세션 데이터를보다 효율적으로 관리하고 사용하는 데 도움이됩니다.

이 세션은 서버 측 상태 관리 메커니즘을 통해 사용자 인증을 인식합니다. 1) 세션 생성 및 고유 ID의 세션 생성, 2) ID는 쿠키를 통해 전달됩니다. 3) ID를 통해 서버 저장 및 세션 데이터에 액세스합니다. 4) 사용자 인증 및 상태 관리가 실현되어 응용 프로그램 보안 및 사용자 경험이 향상됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구
