php 下載導出csv格式


 1 //下載合同信息
 2     public function actionDownload()
 3     {
 4         set_time_limit(0);
 5         ini_set('memory_limit', '512M');
 6         $criteria = new CDbCriteria();
 7 
 8         $rent_ids = trim(Yii::app()->request->getParam("rent_ids"));    //下載的合同列表
 9         //字符串轉換為數組
10         if (!empty($rent_ids))
11         {
12             $criteria->addCondition("f_id in ({$rent_ids})");
13         }
14 
15         $count = T_rent_contract::model()->count();
16 
17         //導出csv格式
18         header("Content-Type:text/csv");
19         header("Content-Disposition:attachment;filename=" . "_shift_agreement_detail-" . date("Y-m-d") . ".csv");
20         ob_end_clean();
21         $delimiter = ',';
22         $table_headers = array(
23             '收款人帳號',
24             '收款人名稱',
25             '用途',
26             '金額',
27         );
28         $header = '';
29         foreach($table_headers as $table_header)
30         {
31             $header .= $table_header . $delimiter;
32         }
33         $header = substr($header, 0, -1);
34         $header .= "\n";
35 
36 //        輸出表頭
37         echo iconv('utf-8', 'GBK//IGNORE', $header);
38 
39         //每次取數據的步進
40         $step = 1000;
41         $round = ceil($count/$step);
42         for($i = 1 ; $i <= $round ; $i++)
43         {
44             $criteria->limit = $step;    //取1條數據,如果小於0,則不作處理
45             $criteria->offset = ($i - 1) * $step;   //兩條合並起來,則表示 limit 10 offset 1,或者代表了。limit 1,10
46             $rent_contract_list = T_rent_contract::model()->findAll($criteria);
47 
48             if (count($rent_contract_list))
49             {
50                 foreach($rent_contract_list as $rent_contract)
51                 {
52                     //用途
53                     $purpose = "$rent_contract->f_province_code".'-'."$rent_contract->f_store_code".'-'."$rent_contract->f_cost_center_code";
54                     $f_month_pay_money = $rent_contract['f_month_pay_money'];    //固定金額
55                     $f_rent = $rent_contract['f_rent'] ;          //房租
56 
57                     //合並房租和物業費
58                     $table_contents = array(
59                         "\t".$rent_contract->f_rent_number,  //房租賬號   \t 把數字轉字符串
60                         $rent_contract->f_rent_name,    //賬號名稱(房租收款人)
61                         $rent_contract->f_rent_bank,    //開戶行(房租收款人)
62                         $f_month_pay_money,//固定金額,
64                     );
65                 }
66 
67                 $content = '';
68                 foreach($table_contents as $table_content)
69                 {
70                     $content .= $table_content . $delimiter;
71                 }
72                 $content = substr($content, 0, -1);
73                 $content .= "\n";
74                 echo iconv('UTF-8', 'GBK//IGNORE', $content);
75             }
76         }
77     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM