ThinkPHP使用phpExcel實現Excel數據的導出

在實習的時候,接到一個任務要求將用戶搜索出來的記錄導出到excel,並保存在客戶端,在網上找到了PHPExcel,用了一下,感受很強大,基本上能夠設置excel的全部樣式。而我也只是用到了裏面的不多的功能,就是導出。php

在貼出代碼以前首先說明一下,設置路徑是很是關鍵的,thinkphpphp設置路徑的差異比較大,必定要多注意,不過我是如今php上測試的,而後再thinkphp框架下移植,公司要求必須在thinkphp下開發,其實thinkphp真的沒有我想的那麼好,雖然是方便了,可是不少限制了編程的思惟,並非很靈活。web

其實導出的代碼很簡單,下面是個人一個例子:sql

                   header("charset=utf-8");thinkphp

                   ini_set ('memory_limit', '128M');數據庫

                   $type=$_REQUEST['type'];編程

                   $search_type=$_REQUEST['search_type'];數組

                   $keyword=$_REQUEST['keyword'];app

                   $sql_select="SELECT * FROM pp_view_planorder_prouduct WHERE type='".$type."' AND ".$search_type." LIKE '%".$keyword."%'";框架

                   $Model = new Model();測試

                   $list=$Model->query($sql_select);

                   //echo($sql_select);

 

                   error_reporting(E_ALL);

                   import("phpexcel.PHPExcel",dirname(__FILE__),".php");

                   $objPHPExcel = new PHPExcel();

                   // Set document properties

                   $objPHPExcel->getProperties()->setCreator("aigindustries")//建立者

                   ->setLastModifiedBy("aigindustries")//最後修改者

                   ->setTitle("aigindustries")//標題

                   ->setSubject("aigindustries")//主題

                   ->setDescription("aigindustries")//備註

                   ->setKeywords("aigindustries")//關鍵字

                   ->setCategory("aigindustries");//分類

                   // Add some data

                   $objPHPExcel->setActiveSheetIndex(0)

                   //設置表的名稱標題

                   ->setCellValue('A1',"季度")

                   ->setCellValue('B1',"部門")

                   ->setCellValue('C1',"姓名")

                   ->setCellValue('D1',"備貨性質")

                   ->setCellValue('E1',"組別")

                   ->setCellValue('F1',"類型")

                   ->setCellValue('G1',"品名")

                   ->setCellValue('H1',"規格")

                   ->setCellValue('I1',"材質")

                   ->setCellValue('J1',"包裝")

                   ->setCellValue('K1',"季度第一個月定貨量")

                   ->setCellValue('L1',"季度第二個月定貨量")

                   ->setCellValue('M1',"季度第三個月定貨量");

                   foreach($list as $k => $v)

                   {

                            $num=$k+2;

                            $objPHPExcel->setActiveSheetIndex(0)

                            //Excel的第A列,uid是你查出數組的鍵值,下面以此類推

                            ->setCellValue('A'.$num, $v['quarter'])

                            ->setCellValue('B'.$num, $v['userdept'])

                            ->setCellValue('C'.$num, $v['username'])

                            ->setCellValue('D'.$num, $v['prdfeature'])

                            ->setCellValue('E'.$num, $v['prdgroup'])

                            ->setCellValue('F'.$num, $v['prdkind'])

                            ->setCellValue('G'.$num, $v['prdname'])

                            ->setCellValue('H'.$num, $v['standard'])

                            ->setCellValue('I'.$num, $v['resource'])

                            ->setCellValue('J'.$num, $v['pack'])

                            ->setCellValue('K'.$num, $v['value1'])

                            ->setCellValue('L'.$num, $v['value2'])

                            ->setCellValue('M'.$num, $v['value3']);

                   }

                   // Rename worksheet

                   $objPHPExcel->getActiveSheet()->setTitle($type.'-該季度全部定貨信息');

                   // 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;charset=utf-8');

                   header('Content-Disposition: attachment;filename="'.$type.'-該季度全部定貨信息.xls"');

                   header('Cache-Control: max-age=0');

                   $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');

                   $objWriter->save('php://output');

                   exit;

上邊的import("phpexcel.PHPExcel",dirname(__FILE__),".php");thinkphp導入的語句,我直接就將phpexcel放在了action文件夾下,網上說放什麼地方,其實只要能導入都行。導入的方式必定要看thinkphp的手冊,裏面很詳細。

我上面實現的例子就是講數據庫中查詢出來的數據導出到excel表格中,你只要換成本身的查詢出來的數據就能夠了。

元謀人

201281415:03:14

相關文章
相關標籤/搜索