PHP экспорт в файл Excel дает мне исходный код в столбцах - PullRequest
0 голосов
/ 01 октября 2010

Я чувствую, что совершаю простую ошибку, но не могу понять, что.

У меня есть код для экспорта таблицы mySQL в файл Excel.

Однако, когда я делаю экспорт, весь исходный код HTML экспортируется вместе с моими данными. Я открываю файл в Excel и мои данные таблицы там, но он также содержит весь HTML внутри.

Что может быть причиной экспорта всего исходного кода вместе с данными?

Я должен упомянуть, что я использую этот код как часть плагина Wordpress, который я пишу. Когда я проверяю экспорт вне WordPress, он работает нормально. Но когда я пытаюсь выполнить экспорт со страницы администратора Wordpress, я получаю весь дополнительный HTML-код.

1 Ответ

1 голос
/ 04 октября 2010

Попробуйте этот код.

$host = 'localhost';
$user = 'mysqlUser';
$pass = 'myUserPass';
$db = 'myDatabase';
$table = 'products_info';
$file = 'export';

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());

mysql_select_db($db) or die("Can not connect.");


$res = mysql_query("SELECT * FROM $table");

// fetch a row and write the column names out to the file
$row = mysql_fetch_assoc($res);
$line = "";
$comma = "";
foreach($row as $name => $value) {
    $line .= $comma . '"' . str_replace('"', '""', $name) . '"';
    $comma = ",";
}
$line .= "\n";
fputs($fp, $line);

// remove the result pointer back to the start
mysql_data_seek($res, 0);

// and loop through the actual data
while($row = mysql_fetch_assoc($res)) {

    $line = "";
    $comma = "";
    foreach($row as $value) {
        $line .= $comma . '"' . str_replace('"', '""', $value) . '"';
        $comma = ",";


    }
     $line .= "\n";
    fputs($fp, $line);

}

fclose($fp);
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename="export.csv"');
readfile('export.csv'); 

Спасибо,

Кандзи

...