CSV выгрузка из PHP, которую понимает Excel

Надо сказать, что Excel любит формат не csv, а tsv. Иными словами, в данном формате разделителем является символ табуляции.
Помимо этого файл должен быть в кодировке UTF-16LE и содержать битовый маркер (BOM) — «\xFF\xFE»
Итого, вот такой код у вас должен получиться, чтобы cvs, создаваемый вами успешно открылся в экселе:

echo "\xFF\xFE";
// $output - переменная, в которой записан весь csv, UTF-8 - исходная кодировка, в которой находится $output
echo mb_convert_encoding($output, "UTF-16LE", "UTF-8");