mysqli экспорт в выпуск xls

0

У меня есть работа, и я не могу понять, в чем проблема. Я загружаю файл 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";
  }
  • 1
    Можете ли вы уточнить, в чем именно проблема?
  • 0
    Если вы генерируете файл CSV (считаете ли вы, что это файл Excel или нет), тогда используйте встроенную в PHP функцию fputcsv () вместо того, чтобы пытаться написать ту же самую функциональность (плохо) самостоятельно
Теги:
export
mysqli
xls

1 ответ

1

Там гораздо больше для генерации файла Excel, чем предоставление ему типа содержимого application/vnd.ms-excel. Excel - очень конкретный формат, тогда как вы генерируете TSV файл - вкладки разделены значениями и довольно красиво (что происходит, если кто-то помещает \t в одно из полей вашего сайта или новую строку?).

Если вы хотите генерировать реальные файлы Excel, вам понадобится одна из различных библиотек для этого. Если CSV/TSV в порядке, просто экспортируйте .csv/.tsv с соответствующими заголовками.

  • 0
    Я согласен. Мой любимый это PHPExcel

Ещё вопросы

Сообщество Overcoder
Наверх
Меню