Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 05.05.2018
Сообщений: 10
1

Выгрузить таблицу из MySQL в Excel

01.04.2020, 21:29. Показов 1091. Ответов 3

Author24 — интернет-сервис помощи студентам
Здравствуйте! Пишу дипломную работу и столкнулся с проблемой выгрузки данных из MySQL в Excel.
JS выглядит следующим образом:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function OutputExcel() {
    var click_excel = "true";
    $.ajax({
      url: "ajax/output_excel.php",
      type: "POST",
      cache: false,
      data: {
        click_excel: click_excel
      },
      dataType: "html",
      beforeSend: function() {
        $("#button_add").prop("disable", true);
      },
      success: function(data) {
        // alert(data);
        if (data) {
//функция накладывает стили на сообщение, если все хорошо, то стиль положительный (зеленый цвет)
          green_message();
          document.getElementById("message_text2").innerHTML = data;
        }
        button_add.addEventListener("click", AddButton);
        button_del.addEventListener("click", DelButton);
        button_edit.addEventListener("click", EditButton);
        button_search.addEventListener("click", SearchButton);
        excel.addEventListener("click", OutputExcel);
        word.addEventListener("click", OutputWord);
      }
    });
  }
PHP имеет следующий вид:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
include "../db_connection.php";
$click_excel = $_POST['click_excel'];
 
$select_query = "SELECT * FROM Users;";
$select_query_result = mysqli_query($connection, $select_query);
 
require_once('../PHPExcel/Classes/PHPExcel.php');
 
   $phpexcel = new PHPExcel(); 
 
   $page = $phpexcel->setActiveSheetIndex(0); 
     $page->setCellValue("A1", "ID"); 
     $page->setCellValue("B1", "Login1");
     $page->setCellValue("C1", "Password1");
     $page->setCellValue("D1", "Email");   
     $page->setCellValue("E1", "AdminPrivileges"); 
 
     $s = 2;
     while($row=mysqli_fetch_array($select_query_result))
    {
     $s++;
       $page->setCellValue("A$s", $row['ID']); 
       $page->setCellValue("B$s", $row['Login1']);
       $page->setCellValue("C$s", $row['Password1']);
       $page->setCellValue("D$s", $row['Email']);   
       $page->setCellValue("E$s", $row['AdminPrivileges']);  
//что должно вывестись: 
//ID = "123" Login1 = "Stark2000" Password1 = "Password123" Email = "Email@mail.ru" AdminPrivileges = "1"
    } 
 
header('Content-Type: application/vnd.ms-excel; charset=utf-8;');
header('Content-Disposition: attachment;filename="myfile.xls"');
header("Content-Transfer-Encoding: binary ");
 
 $page->setTitle("Example"); 
 $phpexcel = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel2007');
 
 $phpexcel->save('php://output');
Как видно из предложенного PHP кода я использую библиотеку PHPExcel и использую её первый раз в жизни, и просто полный 0 в ней. Данный код выводит не понятно что, закреплю изображение ниже. В этом коде я пытаюсь генерировать excel файл и передать его пользователю, чтобы тот мог его сохранить у себя на пк.

Изначально пробовал с помощью этого кода сохранить excel файл на стороне сервера (все работает отлично) изменив последнюю строку в конце на:
PHP
1
 $phpexcel->save('example.xlsx');
и убрав:
PHP
1
2
3
header('Content-Type: application/vnd.ms-excel; charset=utf-8;');
header('Content-Disposition: attachment;filename="myfile.xls"');
header("Content-Transfer-Encoding: binary ");
Миниатюры
Выгрузить таблицу из MySQL в Excel  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.04.2020, 21:29
Ответы с готовыми решениями:

Создать запрос в MySQL из Excel и выгрузить данные в таблицу
вообщем есть готовая программа нужно выполнить запрос посредством MS ADO и результаты запроса...

Выгрузить таблицу из ListBox на лист в excel
Здравствуйте, такая проблема, есть 2 ListBox. В первом список всех возможных видов работ (они...

Выгрузить данные из SQL и сохранить их в таблицу Excel
Здравствуйте. Уважаемые гуру в C# помогите плз. Необходимо по запросу выгрузить данные из SQL и...

Как выгрузить в Excel таблицу с распределением трудозатрат по дням
Как выгрузить в ексель таблицу из представления "использование ресурсов" где будут название...

3
 Аватар для anamnado
23 / 30 / 4
Регистрация: 08.12.2019
Сообщений: 221
04.04.2020, 19:07 2
я вопроса не нашел.
0
 Аватар для sad67man
2400 / 1399 / 660
Регистрация: 23.08.2015
Сообщений: 3,514
05.04.2020, 04:33 3
Максим1207, У вас там ошибка уровня Noctice на 3-ей строке, это я так понимаю здесь
PHP
1
$click_excel = $_POST['click_excel'];
Ругается. что нет такого индекса в массиве. Так сходу не могу понять из-за чего. Но в принципе тут можно не передавать никаких значений. Проверки на метод запроса будет достаточно. (Если только это не является какой-нибудь защитой от спама.)

Добавлено через 4 минуты
Может вы тестируете через адресную строку браузера? и соответственно получается что запрос идет методом GET? Тогда массив $_POST будет пустой.
1
0 / 0 / 0
Регистрация: 05.05.2018
Сообщений: 10
20.04.2020, 17:12  [ТС] 4
Данные стали нормально выводиться в таблицу после изменения следующего кода:
PHP
1
2
3
header('Content-Type: application/vnd.ms-excel; charset=utf-8;');
header('Content-Disposition: attachment;filename="myfile.xls"');
header("Content-Transfer-Encoding: binary ");
НА:

PHP
1
2
3
4
5
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename=Pc_Users.xlsx');
header('Cache-Control: max-age=0'); //no cache
// clean data
ob_end_clean();
ТЕМУ МОЖНО ЗАКРЫТЬ
0
20.04.2020, 17:12
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2020, 17:12
Помогаю со студенческими работами здесь

Как выгрузить процесс Excel из памяти при экспорте данных из ASP.Net (C#) в Excel?
Здравствуйте! Как выгрузить процесс Excel из памяти при экспорте данных из ASP.Net (C#) в Excel? ...

Выгрузить с 1С в mysql
Подскажите почему выдает ошибку {Форма.Форма.Форма(16)}: Ошибка при вызове метода контекста (Open)...

Выгрузить таблицу из БД
У меня есть бд "mydb", в ней табличка "enterprises". Нужно выгрузить табличку в jTable. Использую...

Выгрузить данные из бд Mysql в файл XML
Приветствую. Подскажите как можно как можно сделать выгрузку данных из Mysql в файл XML.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru