1
function export_csv(){
        $this->load->helper('csv');
        if(isset($_POST['term_val'])&&$_POST['term_val']<>'0'){

        $term   = $this->Search_model->get_term($_POST['term_val']);
        $term   = json_decode($term);
        }else{
        $term=array();
        }


     $orders    = $this->Order_model->get_orders_export($term,'place_order');

    if(count($orders)>0){
    foreach($orders as $order){
    $sublist['order_id']= $order->order_number;
    $sublist['ship_to']= $order->ship_firstname.' '.$order->ship_lastname;
    $sublist['order_date']= date('d-m-Y H:i:s',strtotime($order->ordered_on));
    $sublist['email_to']= $order->ship_email;
    $sublist['city']= $order->ship_city;
    $sublist['pincode']= $order->ship_zip;
    $sublist['ship_address']= $order->ship_address1.' , '.$order->ship_address2;
    $sublist['phone']= $order->ship_phone;
        $sublist['product_name']= $order->name;
    $sublist['product_id']= $order->product_id;
    $sublist['status']= $order->status;
    $sublist1[]= $sublist;
    }
    $delimiter = ";";
    $newline = "\r\n";
    $heading[]=array('order_id'=>'Order Id','ship_to'=>'Ship To','order_date'=>'Order Date','email_to'=>'Email To',
    'city'=>'City','pincode'=>'Pincode','ship_address'=>'Ship Address','phone'=>'Phone','product_name'=>'Product Name','product_id'=>'Product ID','status'=>'status');

    $get_csv=array_to_csv1($sublist1,$heading,$delimiter, $newline); 
    ob_start();
  $filename = "orders_" . date('Ymd') . ".xls";
  header("Content-Disposition: attachment; filename=\"$filename\"");
  header("Content-Type: application/vnd.ms-excel");


//  header("Content-type: text/x-csv");
    //header("Content-type: text/csv");
//  header("Content-type: application/csv");
//  header("Content-Disposition: attachment; filename=orders".date('d-M-Y').".csv");    
    print_r($get_csv); 
    }else{

    redirect($this->config->item('admin_folder').'/orders');    
    }
    }

ここに画像の説明を入力

上記のコードはエクスポート CSV のコントローラー関数で、画像はエクスポート時に実行されるアクションです。

問題: 実際に codeigniter を使用して csv をエクスポートすると、上記のようにその画像が表示されます。codeigniter を使用して export csv を押すと、その画像は表示されず、csv が Excel に直接エクスポートされます。

4

2 に答える 2

2

レポートを csv 形式で生成する場合は、codeigniter を使用すると非常に簡単です。モデル関数

function index(){
   return $query = $this->db->get('my_table');
   //Here you should note i am returning 
   //the query object instead of 
   //$query->result() or $query->result_array()
}    

今コントローラーで

function get_report(){
  $this->load->model('my_model');
  $this->load->dbutil();
  $this->load->helper('file');
  // get the object
  $report = $this->my_model->index();
  //pass it to db utility function
  $new_report = $this->dbutil->csv_from_result($report);
 //Now use it to write file. write_file helper function will do it
 write_file('csv_file.csv',$new_report);
 //Done
}

外部は必要ありません。すべてが Codeigntier で利用可能です。上記の方法では、ファイルを開く代わりに強制的にダウンロードします。乾杯!xmlファイルを書きたい場合も簡単です。dbutil の xml_from_result() メソッドを使用し、 write_file('xml_file.xml,$new_report) を使用するだけです。これらのリンクにアクセスしてください。

データベース ユーティリティ クラス

ファイルヘルパー

于 2013-03-16T07:50:27.070 に答える
-1
***> if you are trying to generate reports in csv format then it will quite
> easy with codeigniter.***

このコードをコントローラーに配置します

function get_report()
    {
        $this->load->model('Main_Model');
        $this->load->dbutil();
        $this->load->helper('file');
        /* get the object   */
        $report = $this->Main_Model->print_report();
        $delimiter = ",";
        $newline = "\r\n";
        $new_report = $this->dbutil->csv_from_result($report, $delimiter, $newline);
        write_file( 'application/third_party/file.csv', $new_report);
        $this->load->view('report_success.php');
   }

このコードをモデルに入れます

public function print_report()
    {
        return $query = $this->db->query("SELECT * FROM Table_name");
    } 

report_success.php は単なる成功通知です。

レポートをエクスポートしています。ありがとうございました


最後に「file.csv」が生成されます。基本的に物理ストレージに保存されます。CodeIgniter/application/thirdparty/file.csv 内


できます。それはあなたを助けるでしょう。

于 2015-01-20T10:39:26.290 に答える