Форум программистов, компьютерный форум, киберфорум
WordPress
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829

Выгрузка данных со страницы в xls или csv

10.10.2019, 10:41. Показов 1477. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Поставил себе задачу выгружать данные со страницы в таблицу, которую с удовольствием скушает excel. Беда в том, что на странице данные формируются динамически, по фильтрам через ajax. Для примера возьмём, что это всегда список "ФИО - телефон - комментарий", но за разные, например, даты.
Пробовал разные решения - всегда проблема в том, что header-ы невозможно отправить после header-ов WP (что логично). А без этого переменные со страницы не передать в файл. В гугле внятной инфы не нашел (может плохо искал, но всё же).
Собственно, как быть и что делать?
Заранее всем спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2019, 10:41
Ответы с готовыми решениями:

Импорт данных из xls или csv файла в БД MySql C#
Очень нужна помощь. Есть большой объем данных(файлы xls,csv) которые нужно импортировать через форму в БД MySql.

Конвертация json в csv или xls
Добрый день, необходимо конвертировать файл json в табличный вид. On-line конверторы не подходят, т.к. файл достаточно большой (100 МБ)....

Простой парсер xls или csv
Прошу помощи в решении задачи. Надо xls файл (либо csv, который получается из этого xls) прочитать построчно с занесением в отдельные...

11
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829
14.10.2019, 22:12  [ТС]
Up.
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829
21.10.2019, 10:07  [ТС]
Up.
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829
23.10.2019, 12:25  [ТС]
Up.
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829
10.12.2019, 10:39  [ТС]
Актуально.
0
 Аватар для chomovva
61 / 59 / 23
Регистрация: 29.07.2014
Сообщений: 286
10.12.2019, 14:54
Сделать на странице кнопку, на которую навесить событие отправки AJAX запроса на сервер для получения файла.

А на сервере у вас будет зарегистрирован хук, который сгенерирует файл из массива. csv можно создать без библиотеки напрямую в php, а вот с xls придётся повозиться.

Добавлено через 19 минут
можно ещё проще, без ajax запросов, а на страницу добавить ссылку типа

HTML5
1
2
3
<a href="<?php echo add_query_arg( array( 'get_file' => 'csv' ), get_the_permalink( get_the_ID() ) ); ?>">
    Скачать CSV
</a>
а в php коде страницы:
PHP
1
2
3
4
5
if ( isset( $_REQUEST[ 'get_file' ] ) && $_REQUEST[ 'get_file' ] == 'csv' ) {
   // формируем CSV файл из массива
} else {
   // выводим Вашу страницу на которой формируется динамическая таблица
}
примерно таким способом можно
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829
10.12.2019, 15:29  [ТС]
chomovva, первый вариант, получается, нужно передать все значения фильтров и, грубо говоря, заново получить все данные через хук? Как-то громоздко получается.

Второй вариант немного не понял. Можно подробнее?
0
 Аватар для chomovva
61 / 59 / 23
Регистрация: 29.07.2014
Сообщений: 286
10.12.2019, 22:00
кусок кода который получает эти данные можно оформить в виде отдельной функции, тогда не так громоздко получится, а скорей всего он уже и так в виде отдельной функции оформлен.
у вас там скорей всего для работы фильтра есть примерно такой код:
PHP
1
2
add_action( 'wp_ajax_{ВАШ-АКТИОН}_pagination', ВАША-ФУНКЦИЯ-КОТОРАЯ-ФИЛЬТРУЕТ );
add_action( 'wp_ajax_nopriv_{ВАШ-АКТИОН}_pagination', ВАША-ФУНКЦИЯ-КОТОРАЯ-ФИЛЬТРУЕТ );
мне больше второй вариант нравится, он проще

страница которая выводит таблицу юзверю скорей всего сделана в виде отдельного шаблона. в коде этого шаблона можно написать примерно следующее:

PHP
1
2
3
4
5
6
7
8
if ( isset( $_REQUEST[ 'get_file' ] ) && $_REQUEST[ 'get_file' ] == 'csv' ) {
   // ВАША-ФУНКЦИЯ-КОТОРАЯ-ФИЛЬТРУЕТ создаёт массив
   // другой код из того массива создаёт динамический CSV файл
   // который сразу отдаются юзверю
} else {
   // все тело страницы
   // get_header, if have_post while ..... ..... get_footer ......
}
т.е. когда страница загружается, то проверяется есть ли в запросе переменная $_RESUEST[ 'get_file' ] или $_GET[ 'get_file' ], если есть, то юзверю нужна не страница, а файл. файл формируется и отдаётся.

если переменной нет, просто формируется страница и всё работает как обычно.

чтобы сервер не тролили боты, то можно добавить проверку безопасности на ява скрипте или прямо в url.
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829
10.12.2019, 22:27  [ТС]
chomovva, ну, с первым-то всё понятно.

Со вторым вопросы. Страница сделана по шаблону. Но этот шаблон тянется по аяксу с заложенными параметрами. Если я воткну в условие генерацию csv - не выдаст ошибку headers already sent? В любом случае, спасибо, попробую.

В целом-то, оба варианта одно и то же, по сути.
0
 Аватар для chomovva
61 / 59 / 23
Регистрация: 29.07.2014
Сообщений: 286
10.12.2019, 22:34
Цитата Сообщение от gogolik Посмотреть сообщение
Но этот шаблон тянется по аяксу с заложенными параметрами.
в смысле шаблон тянется по ajax?
вся страница (с шапкой, футером, скриптами, контролами формы фильтра) в браузер загружается без аякса, а вот фильтры на уже готовой и загруженной странице по аяксу подгружают и/или обновляют одну таблицу. или я что-то не так понимаю?
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3957 / 2072 / 831
Регистрация: 13.03.2010
Сообщений: 6,829
10.12.2019, 23:06  [ТС]
chomovva, а, недопоняли друг друга. Всё верно.
0
 Аватар для chomovva
61 / 59 / 23
Регистрация: 29.07.2014
Сообщений: 286
10.12.2019, 23:18
вот в этом шаблоне и добавить условие или файл, или страница.

т.е. до формирования шапки, формы, вывода скриптов ....
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.12.2019, 23:18
Помогаю со студенческими работами здесь

Экспорт из phpmyadmin в csv или xls
Экспорт из phpmyadmin в csv или xls есть ли у кого рабочий код?

Выгрузка данных в xls файл
Добрый день, уважаемые форумчане! Хочу реализовать один проект. Я сделал форму, задумка следующая: На форме есть две кнопки и...

Как объединить 2 файла CSV или XLS в 1
Здравствуйте. Возникла необходимость в автоматическом режиме (с помощью макроса или еще как) объединить 2 файла с расширением CSV либо XLS...

Выгрузка данных в *.csv
Добрый день. Подскажите плиз, каким образом можно выполнить выгрузку 1с базы данных бухгалтерии в файл .csv Какие обработки...

Выгрузка данных в CSV
Выгружаю, автоматом переносит строки, как можно исправить? &lt;div class=&quot;sp-wrap&quot;&gt;&lt;div class=&quot;sp-head-wrap&quot;&gt;&lt;div...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru