CodeIgniter:从数据库导出数据到excel并下载

我正在开发一个项目,需要根据多个条件从MYSQL数据库导出数据。 我指的是:

这是我的源代码:

public function exportExcelData($records) { $heading = false; if (!empty($records)) foreach ($records as $row) { if (!$heading) { // display field/column names as a first row echo implode("\t", array_keys($row)) . "\n"; $heading = true; } echo implode("\t", ($row)) . "\n"; } } public function fetchDataFromTable() { $query =$this->db->get('one_piece_characters'); // fetch Data from table $allData = $query->result_array(); // this will return all data into array $dataToExports = []; foreach ($allData as $data) { $arrangeData['Charater Name'] = $data['name']; $arrangeData['Charater Profile'] = $data['profile']; $arrangeData['Charater Desc'] = $data['description']; $dataToExports[] = $arrangeData; } // set header $filename = "dataToExport.xls"; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"$filename\""); $this->exportExcelData($dataToExports); } 

如果我没有任何地方使用它,它是给整个表。

如果我只使用单个where子句,它的效果很好。

伯,如果我使用多个条件。 它给了我一个空白的Excel表单。

有没有人有任何想法如何使它与多个条件的工作?

尝试在您的模型文件上使用此代码:

 function createcsv(){ $this->load->dbutil(); $this->load->helper('file'); $this->load->helper('download'); $delimiter = ","; $newline = "\r\n"; $filename = "filename.csv"; $query = "SELECT * FROM YourTable"; //USE HERE YOUR QUERY $result = $this->db->query($query); $data = $this->dbutil->csv_from_result($result, $delimiter, $newline); force_download($filename, $data); } 

// csv中的ecport竞争列表,

 public function cnt_explode(){ $csvData[] =array( "Name", "Email Id","Mobile No.","Event", "City","location","No of guest","Event Date","Budget", "Venue Type","Food","Drink","Description","Date"); $data = $this->contact_model->get_contact(NULL); foreach($data as $cnt){ $csvData[]=array( $cnt->name ,$cnt->email, $cnt->mobile_no, $cnt->event, $cnt->city, $cnt->location, $cnt->no_guest,$cnt->event_date,$cnt->budget, $cnt->venue_type, $cnt->food, $cnt->drink, $cnt->description,$cnt->created_on, ); } header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment;filename=venuexpo_".time().".csv"); header("Content-Transfer-Encoding: binary"); $df = fopen("php://output", 'w'); array_walk($csvData, function($row) use ($df) { fputcsv($df, $row); }); fclose($df); } ///------------ downlode csv done --------------