Home Backend Development PHP Tutorial PHPExcel(一)- 导出功能

PHPExcel(一)- 导出功能

Jun 13, 2016 pm 12:19 PM
gt phpexcel quot

PHPExcel(1)-- 导出功能
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 (&#39;application.extensions.*&#39;);require_once(&#39;PHPExcel/PHPExcel.php&#39;);require_once &#39;PHPExcel/PHPExcel/Writer/Excel5.php&#39;; // 用于其他低版本xlsrequire_once &#39;PHPExcel/PHPExcel/Writer/Excel2007.php&#39;; // 用于 excel-2007 格式...
Copy after login


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');    }
Copy after login



6、不要忘了在用户访问控制里面添加动作download
public function accessRules(){array('allow', // allow admin user to perform 'admin' and 'delete' actions                'actions' => array('download'),                'roles' => array('...'),            ),}
Copy after login



7、在对应的view文件中,编写链接
<?php echo CHtml::link(CHtml::encode("》导出Excel表格"), array(&#39;download&#39;,&#39;option&#39; => $option)); ?>
Copy after login



8、完成将数据以excel文件导出。


以上是自己对PHPExcel的一个应用,因为是初次接触,用的也不熟练,难免有一些不当,望大家指出,共同进步!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What are the differences between Huawei GT3 Pro and GT4? What are the differences between Huawei GT3 Pro and GT4? Dec 29, 2023 pm 02:27 PM

Many users will choose the Huawei brand when choosing smart watches. Among them, Huawei GT3pro and GT4 are very popular choices. Many users are curious about the difference between Huawei GT3pro and GT4. Let’s introduce the two to you. . What are the differences between Huawei GT3pro and GT4? 1. Appearance GT4: 46mm and 41mm, the material is glass mirror + stainless steel body + high-resolution fiber back shell. GT3pro: 46.6mm and 42.9mm, the material is sapphire glass + titanium body/ceramic body + ceramic back shell 2. Healthy GT4: Using the latest Huawei Truseen5.5+ algorithm, the results will be more accurate. GT3pro: Added ECG electrocardiogram and blood vessel and safety

Fix: Snipping tool not working in Windows 11 Fix: Snipping tool not working in Windows 11 Aug 24, 2023 am 09:48 AM

Why Snipping Tool Not Working on Windows 11 Understanding the root cause of the problem can help find the right solution. Here are the top reasons why the Snipping Tool might not be working properly: Focus Assistant is On: This prevents the Snipping Tool from opening. Corrupted application: If the snipping tool crashes on launch, it might be corrupted. Outdated graphics drivers: Incompatible drivers may interfere with the snipping tool. Interference from other applications: Other running applications may conflict with the Snipping Tool. Certificate has expired: An error during the upgrade process may cause this issu simple solution. These are suitable for most users and do not require any special technical knowledge. 1. Update Windows and Microsoft Store apps

Complete Guide: How to process Excel files using php extension PHPExcel Complete Guide: How to process Excel files using php extension PHPExcel Jul 28, 2023 pm 10:01 PM

Complete Guide: How to Process Excel Files Using PHP Extension PHPExcel Introduction: Excel files are often used as a common format for data storage and exchange when processing large amounts of data and statistical analysis. Using the PHP extension PHPExcel, we can easily read, write and modify Excel files to effectively process Excel data. This article will introduce how to use the PHP extension PHPExcel to process Excel files and provide code examples. 1. Install PHPExc

PHP development: Use PHPExcel to process Excel files PHP development: Use PHPExcel to process Excel files Jun 15, 2023 pm 03:45 PM

With the advent of the digital age, data has become the most important part of our daily lives and work, and Excel files have become one of the important tools for data processing. I believe that many PHP developers will often encounter the use of Excel files for data processing and operations at work. This article will introduce you to the methods and precautions for using the PHPExcel library to process Excel files. What is PHPExcel? PHPExcel is a PHP class

How to Fix Can't Connect to App Store Error on iPhone How to Fix Can't Connect to App Store Error on iPhone Jul 29, 2023 am 08:22 AM

Part 1: Initial Troubleshooting Steps Checking Apple’s System Status: Before delving into complex solutions, let’s start with the basics. The problem may not lie with your device; Apple's servers may be down. Visit Apple's System Status page to see if the AppStore is working properly. If there's a problem, all you can do is wait for Apple to fix it. Check your internet connection: Make sure you have a stable internet connection as the "Unable to connect to AppStore" issue can sometimes be attributed to a poor connection. Try switching between Wi-Fi and mobile data or resetting network settings (General > Reset > Reset Network Settings > Settings). Update your iOS version:

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

How to use phpexcel to convert Excel files to CSV files and open them How to use phpexcel to convert Excel files to CSV files and open them Mar 27, 2023 pm 04:16 PM

​PHPEXCEL is an excellent PHP class library for reading and writing Excel files. It provides a very sufficient API that allows us to use PHP to read and write Excel files. Sometimes, we need to convert Excel files into CSV files for use on some occasions. So, this article mainly describes how to use the PHPEXCEL class library to convert Excel files into CSV files and open them.

Why phpexcel has become the focus of PHP developers Why phpexcel has become the focus of PHP developers Mar 27, 2023 pm 06:15 PM

PHPExcel is an open source PHP library for processing Microsoft Excel files. It can read, create, modify and save Excel files. It is a powerful and highly customizable tool that can be used to handle tasks such as data analysis, report generation, data import and export, etc. In this article, we will introduce why PHPExcel has become the focus of PHP developers.

See all articles