csv 導入導出——php

直接上代碼:php

導入:服務器

public function do_finance()
    {
        //判斷上傳文件存在值
        if(!empty($_FILES)){session

            $filename = $_FILES['file']['tmp_name'];//被上傳文件的名稱
            $filetype = $_FILES["file"]["type"];//被上傳文件的類型
            $filesize = $_FILES["file"]["size"];// 被上傳文件的大小,以字節計
            $filetmp = $_FILES["file"]["tmp_name"];//存儲在服務器的文件的臨時副本的名稱
            $fileerror = $_FILES["file"]["error"];//由文件上傳致使的錯誤代碼app

            //判斷是否上傳成功
            if($fileerror==0){
                //判斷是不是excel表格
                if($filetype=="application/vnd.ms-excel"){post

                    $a=0;
                    //以讀取的方式打開表格
                    $handle = fopen($filename, 'r');this

                    //header("Content-type: applicationnd.ms-excel; charset=utf-8");
                    while (($arr = fgetcsv($handle, 10000, ",")) !== FALSE) {   
                        $a++;url

                        if($a==1){continue;}spa

                            $data=array(
                                'add_date_time'=>iconv('gbk', 'utf-8',$arr['0']),
                                'summary'=>iconv('gbk', 'utf-8',$arr['1']),
                                'income'=>iconv('gbk', 'utf-8',$arr['2']),
                                'expense'=>iconv('gbk', 'utf-8',$arr['3']),
                                'remark'=>iconv('gbk', 'utf-8',$arr['4']),
                                
                                'admin_id' => $this->session->userdata('admin_id'),
                                'admin_add_date' =>date("Y-m-d"),
                            );excel

                        $this->db->insert("finance",$data);
                       }
                       //導入成功結束提示
                       show_msg("導入成功",site_url("manage/finance/"));
                    
                }else{utf-8

                    show_msg("上傳文件非cvs格式,請從新上傳");
                }


            }else{

                switch ($fileerror){
                    case 1:
                        show_msg("上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值.");
                        break;
                    case 2:
                        show_msg("上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值");
                        break;
                    case 3:
                        show_msg("文件只有部分被上傳");
                        break;
                    case 4:
                        show_msg("沒有文件被上傳");
                        break;
                }


            }

        }

    }

 

導出:

 

public function get_pro(){

            if(!empty($_POST)){

                $day_time=$this->input->post('day_time');
            }
            header("Content-type: applicationnd.ms-excel; charset=utf-8");
            header("Content-Disposition: attachment; filename=$day_time.csv");


             $field='pro_cai,pro_figure,pro_width,pro_height,pro_diameter,pro_ls,pro_num,is_hot,is_sales,pro_brand,trade_price,promote_price,memo,brandid';


             $data['title']=array(
                'CAI',
                '花紋',
                '橫截面寬度',
                '高度比',
                '輪胎直徑',
                '載重/速度',
                '數量',
                '熱銷',
               '促銷',
                '品牌',
                '批發價',
                '促銷價',
                '備註',
                '品牌ID',
               );
              echo implode(',',$data['title'])."\n";

             $data['list']=$this->excel_model->get_pro($field,$day_time);
                 foreach($data['list'] as $item){

                       echo implode(',',$item)."\n";

                };


    }

 

注意:打開文件若是是excel2003/2007打開,確定是亂碼,用wps打開轉格式就不會亂碼了!

相關文章
相關標籤/搜索