2015-08-27 30 views
0

我得到了下面的代碼,它工作正常,但它不帶數據庫字段名稱。我怎樣才能把字段名稱,甚至在第一行帶來一些標題名稱?PHPExcel提取數據庫字段名到導出的Excel

while($row = mysql_fetch_array($result)){ 

      $objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['target_id']); 
      $objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['form_id']); 
      $objPHPExcel->getActiveSheet()->SetCellValue('f'.$rowCount, $row['update_date']); 
      $objPHPExcel->getActiveSheet()->SetCellValue('g'.$rowCount, $row['user_id']); 
      $rowCount++; 
      echo "<br>New record created successfully"; 
     } 
+0

鑑於您將列名稱引用爲$ row ['target_id']);','$ row ['form_id']);'等等....您可以使用$ headers = array_keys($行);'您獲取第一行以獲取na列的數組mes ....但是當你抓取的時候指定「關聯」,否則你會同時得到關聯和枚舉 –

回答

0

添加一個單獨的SQL查詢來獲取你的列標題,並分別插入的,例如:

$sql = 'SELECT DISTINCT column_name FROM database.table WHERE column_name = column_name;'; 

,然後將頭到您的Excel工作表中,是這樣的:

$res = mysqli_query($sql); 
    $heads = mysqli_fetch($res); 

    $headers = array(); 
    $loop = 0; 
    while($row = mysqli_fetch_assoc($res)){ 
     $headers[$loop] = $row; 
     $loop ++; 
    } 

    $r = 0; 
    $c = 1; 
    foreach ($headers as $k => $v) { 
     if(isset($v['column_name']) && '' != $v['column_name']) { 
      $sheet->setCellValueByColumnAndRow($c, $r, $v['column_name']); 
     } 
     $c++; 
    }