2017-09-27 142 views
0

以下是我在按鈕按鈕上導出excel表格的代碼。在php中導出爲ex​​cel時更改列名稱

我刪除了一些隱私代碼。所以如果有一些逗號的錯誤或缺失的東西,你發現如此忽略。由於

if(isset($_POST['export'])) 
{ 
$filename = "DEVICE_OUTPUT_DETAIL_$dvc.csv"; 
$fp = fopen('php://output', 'w'); 
$query = "SELECT `DATE`,`DC_VOLTAGE`,`DC_CURRENT`,`PVPANEL_KWH`,`PUMP_AMP`,`PUMP_VOLTAGE`,`PUMP_KW`,`PUMP_FREQ` 
    FROM wp_inverterdata where DEVICE_ID = '$dvccid'"; 

$result = mysql_query($query); 

for($i=0;$i<=7;$i++) 
{ 
    $header[] = mysql_field_name($result, $i); 
} 

header('Content-type: application/csv'); 
header('Content-Disposition: attachment; filename='.$filename); 
fputcsv($fp, $header); 

$query12 = "SELECT 
`DATE`,`DC_VOLTAGE`,`DC_CURRENT`,`PVPANEL_KWH`,`PUMP_AMP`,`PUMP_VOLTAGE`,`PUMP_KW`,`PUMP_FREQ` 
FROM wp_inverterdata device_id = '$dvccid'"; 
$result12 = mysql_query($query12); 

while($row12 = mysql_fetch_row($result12)) { 
    fputcsv($fp, $row12); 
} 
exit; 
} 

本準則perfectly.but問題的工作是在顯示數據的頁面我用「電機」字,而不是在表頭「PUMP」。但是在數據庫列名稱中以PUMP開頭。 那麼有什麼方法可以在Excel中更改列名MOTOR而不是PUMP。

例如高於代碼給了我這樣的 enter image description here 所以輸出我可以改變列名,我在這個Excel中使用PHP得到什麼?

+0

'選擇old_column_name爲new_column_name,..' –

回答

1

你可以改變列在選擇查詢通過把例如。 'DATE' 如日期

$query = "SELECT `DATE` as date,`DC_VOLTAGE` as DCVOLT,`DC_CURRENT` as DCCurr,`PVPANEL_KWH`,`PUMP_AMP`,`PUMP_VOLTAGE`,`PUMP_KW` as MotorKW,`PUMP_FREQ` as MotorFREQ 
    FROM wp_inverterdata where DEVICE_ID = '$dvccid'"; 

問候,

+0

Thanks.it相當不錯solution.data也顯示但與 「未定義頭」 的錯誤和putcsv( )期望參數2是數組 – TarangP

+0

嘗試fputcsv($ fp,explode(',',$ header));這一個傳遞$ header作爲數組 –

1

如果你只是想使你的Excel的標題從您的數據庫列的名稱不同,那麼你可以只使用AS語句在SQL查詢,這是例如別名

SELECT column_name(s) 
FROM table_name AS alias_name; 

所以,當你創建你的報告,你會得到你想要的。 希望這可以幫助