Я получил эту работу, и я не могу понять, в чем проблема.
Я загружаю файл 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
файл с правильными заголовками.
Других решений пока нет …