簡體   English   中英

使用PHP將數據從SQL導出到Excel

[英]Exporting data from sql with php to excel

我正在嘗試使用php將sql導出到csv,這是我設法做到的。 它在沒有兩件事的情況下運行良好:1.由於某些原因,在csv中輸出的sql數據之前,我獲得了當前頁面的HTML代碼。 2.如何更改表格標題行? 要重命名csv中的表標題列。

$result = $db->query("SELECT * FROM user_history WHERE member_id = '$user_id'");
$num_fields = $result->field_count;
$headers = array();
$headers[] = "Number";
for($i = 0; $i < $num_fields; $i++ ) {
    $Obj = $result->fetch_field_direct($i);
    $headers[] = $Obj->name."\t";
}
$current_date = date("y/m/d");
$filename = "MyFileName" . $current_date . ".csv";
$fp = fopen('php://output', 'w');
if ($fp && $result) {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename='.$filename);
    header('Pragma: no-cache');
    header('Expires: 0');
    echo "Title of Your CSV File\n\n";
    // Write mysql headers to csv
    fputcsv($fp, $headers);
    $row_tally = 0;
    // Write mysql rows to csv
    while ($row = $result->fetch_array(MYSQLI_NUM)) {
    $row_tally = $row_tally + 1;
    echo $row_tally.",";
        fputcsv($fp, array_values($row));
    }
    die;
}

fetch_field_direct返回沒有__toString()方法的對象。 根據您需要更改代碼:

$header .= $result->fetch_field_direct($i)."\\t";

至:

$Obj = $result->fetch_field_direct($i);
$header .= $Obj->name."\t";

其次,如果您打印“ \\\\ t”,那么您實際上會得到\\ t。 print "\\t"; 將給您制表符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM