在php中导出到excel时更改列名

时间:2017-09-27 11:28:01

标签: php mysql export-to-excel

以下是按下按钮时导出Excel工作表的代码。

我删除了一些隐私代码。因此,如果您发现某些逗号或任何遗漏的错误,请忽略它。感谢

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;
}

此代码工作正常。但问题出在显示数据的页面中我使用“Motor”字而不是表格标题中的“PUMP”。但是在数据库列名中以PUMP开头。 那么有没有办法在Excel中更改列名MOTOR而不是PUMP。

上面的示例代码给出了这样的输出 enter image description here 那么我可以使用PHP更改此Excel中的列名吗?

2 个答案:

答案 0 :(得分:1)

如果您只想让excel的标题与数据库列名不同,那么您可以在SQL查询中使用AS语句,这是一个Alias for Example

SELECT column_name(s)
FROM table_name AS alias_name;

因此,当您创建报告时,您将拥有所需的内容。 希望这有帮助

答案 1 :(得分:1)

您可以通过放置eg来更改select查询中的列。 &#39; DATE&#39; 作为日期

$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'";

此致