Intereting Posts
Настройка регистрации FOSUserBundle с помощью FOSRestBundle REST API как определить форму в изображении с помощью php? Как подсчитать общее количество сообщений из выбранных типов сообщений? Apache показывает php-код вместо выполнения Как сделать аутентификацию с помощью SOAP? php-константы в файле javascript Необходимо получить данные о продуктах из базы данных mysql экономия места в таблице Mysql Yii Framework 2.0 Загрузка файлов Ошибка finfo_file (): не удалось открыть поток: нет такого файла или каталога WordPress, nginx proxy и подкаталог: wp-login.php перенаправляет в домен Найти все возможные 2 комбинации букв в заданной строке, используя PHP Обработать очень большой файл csv без тайм-аута и ошибки памяти CakePHP – одновременное обновление нескольких таблиц Как очистить поля формы и распечатать сообщение об успешном завершении после отправки ajax-формы Анализ XML в массиве

Невозможно экспортировать xlsx или xls в правильном формате, все данные смешаны

Я использую Laravel excel library "maatwebsite / excel"

Вот мой код

\Excel::create('Users Report' . $time, function ($excel) use ($arrUsers) { $excel->sheet('Users', function ($sheet) use ($arrUsers) { // Set all margins $sheet->fromArray($arrUsers, null, 'A1', true); $sheet->setSize('A1', 25, 18); $sheet->setSize('B1', 25, 18); $sheet->setSize('C1', 25, 18); $sheet->row(1, array( 'Id', 'Name', 'Username', 'Address', 'Email' )); // Freeze first row $sheet->freezeFirstRow(); $sheet->cell('A1:F1', function ($cell) { }); }); })->store('xlsx')->download('xlsx'); 

Файл загружен успешно, но когда я пытаюсь открыть, отображается как показано ниже.

введите описание изображения здесь

Я ссылаюсь на следующие сайты и стараюсь в соответствии с его решениями, но не получил никакого решения. https://github.com/Maatwebsite/Laravel-Excel/issues/202

Пожалуйста, помогите мне.

Благодарю.

Проблема в выходном буфере, решаемая

  ob_end_clean(); ob_start(); //At the very top of your program (first line) \Excel::create('Users Report' . $time, function ($excel) use ($arrUsers) { $excel->sheet('Users', function ($sheet) use ($arrUsers) { // Set all margins $sheet->fromArray($arrUsers, null, 'A1', true); $sheet->setSize('A1', 25, 18); $sheet->setSize('B1', 25, 18); $sheet->setSize('C1', 25, 18); $sheet->row(1, array( 'Id', 'Name', 'Username', 'Address', 'Email' )); // Freeze first row $sheet->freezeFirstRow(); $sheet->cell('A1:F1', function ($cell) { }); }); })->store('xlsx')->download('xlsx'); ob_flush(); 

Это также происходит, когда ваш код отправляет на экран предупреждения или ошибки, попробуйте буферизацию вывода , чтобы проверить, посылает ли ваша программа какой-либо символ на вывод:

 <?php ob_start(); //At the very top of your program (first line) \Excel::create('Users Report' . $time, function ($excel) use ($arrUsers) { $excel->sheet('Users', function ($sheet) use ($arrUsers) { // Set all margins $sheet->fromArray($arrUsers, null, 'A1', true); $sheet->setSize('A1', 25, 18); $sheet->setSize('B1', 25, 18); $sheet->setSize('C1', 25, 18); $sheet->row(1, array( 'Id', 'Name', 'Username', 'Address', 'Email' )); // Freeze first row $sheet->freezeFirstRow(); $sheet->cell('A1:F1', function ($cell) { }); }); })->store('xlsx')->download('xlsx'); //Catch any character sended to the output at this point $out = ob_get_contents(); //Routing the output to the error_log error_log($out); //Cleaning the ouput buffer ob_end_clean(); 

Надеюсь, это сработает для вас