У меня есть работа, и я не могу понять, в чем проблема. Я загружаю файл xls, но он открывается. У меня был такой скрипт mysql, который работал, и я попытался преобразовать его в mysqli и, вероятно, что-то не так... Спасибо заранее
$sqlExp = "SELECT * FROM table";
$countQryExp = mysqli_query($link, $sqlExp );
$filename = "sampledata.xls"; // File Name
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");
$flag = false;
while($row=mysqli_fetch_array($countQryExp,MYSQLI_ASSOC))
{
if(!$flag) {
// display field/column names as first row
echo implode("\t", array_keys($row)) . "\r\n";
$flag = true;
}
echo implode("\t", array_values($row)) . "\r\n";
}
Там гораздо больше для генерации файла Excel, чем предоставление ему типа содержимого application/vnd.ms-excel
. Excel - очень конкретный формат, тогда как вы генерируете TSV файл - вкладки разделены значениями и довольно красиво (что происходит, если кто-то помещает \t
в одно из полей вашего сайта или новую строку?).
Если вы хотите генерировать реальные файлы Excel, вам понадобится одна из различных библиотек для этого. Если CSV/TSV в порядке, просто экспортируйте .csv
/.tsv
с соответствующими заголовками.