Создание товарного фида в формате XML — довольно важная задача для специалиста по контекстной рекламе. Такой фид позволяет запустить несколько рекламных форматов в Яндекс.Директе, динамический ретаргетинг во «ВКонтакте» и myTarget, торговые кампании в Google, а также создать магазин в Яндекс.Маркете и каталог в Facebook.
Есть два способа создать товарный фид:
- автоматически через CMS;
- вручную.
Генерация фида в CMS
Если сайт создан на базе популярной CMS, то можно использовать специальные модули или плагины для генерации прайс-листа. Например, для создания фида в формате YML можно скачать дополнения для таких CMS:
- 1C-Bitrix;
- WordPress (Для Woocommerce);
- Shop-Script 7;
- Insales;
- AdvantShop;
- Opencart 2;
- Opencart 3;
- NetCat;
- PHPShop;
- ReadyScript;
- PrestaShop;
- RetailCRM;
- UMI.CMS;
- Magento 1.7.0.2 — 1.9.4.0;
- Magento 2.1.8 — 2.3.1;
- Simpla;
- OkayCMS;
- Tiu.ru;
- Ecwid;
- Tilda.
Создание XML-файла вручную
Ручной метод можно использовать, когда нет возможности сформировать прайс-лист с CMS, например, если CMS самописная, у сайта неправильная структура или нет разработчика или бюджета на него.
Следует также понимать, что этот способ создания фидов подойдет для тех, у кого обновления товаров происходят редко либо страницы, цены и предложения не меняются вовсе. Обновление собранного вручную фида будет происходить тоже в ручном режиме.
Для работы потребуется Excel и Note Pad++. В инструкции мы будем использовать шаблоны, которые можно скачать с Google Диска. Также в папке есть файлы с меткой ready — это готовые фиды для проверки правильности выполнения инструкции.
Подготовка к созданию XML-фидов
В первую очередь необходимо включить в Excel возможность работы с XML-файлами (панель «Разработчик»), поэтому переходим в параметры программы.
Затем в настройках ленты ставим галочку в пункте «Разработчик» — «XML».
Теперь Excel может открывать файлы в формате XML.
Как работать с XML-фидом в Excel
Чтобы открыть нужный нам XML-фид, достаточно перетащить его в окно Excel и в появившемся окне выбрать «XML-таблица», затем — просто «Ок».
В Excel откроется таблица со всеми значениями тегов, а если открыть вкладку «Разработчик» и в блоке XML нажать на «Источник», то появится карта с тегами.
Теперь нам осталось заполнить таблицу (например, используя файл полученный из экспорта базы данных или модуля экспорта/импорта), после этого — нажать на «Экспорт», задать название файла и сохранить его.
Если открыть файл в редакторе NotePad++, то файл будет выглядеть так:
Создаем YML-фид
Чтобы сформировать YML-фид вручную, мы сначала соберем его две отдельные части, которые после соединим. Так, мы разделим его на:
- <categories> — фид с категориями;
- <offers> — фид с товарами.
Для части <offers> выгрузим из базы, модулей экспорта-импорта данные о товарах:
- ID,
- ссылку,
- ссылку на картинку,
- наименование,
- описание,
- цену,
- категорию,
- тип (желательно, но не обязательно).
Затем выгружаем вторую таблицу со значениями для создания части <categories>:
- название категории,
- ID-категории,
- родительская категория (если есть).
После этого для формирования части <offers> в зависимости от полученных данных используем один из представленных прайс-листов:
- упрощенный (файл yml-part-2-name.xml в папке yml) — использует только name (название товара);
- С type (файл xml-part-2-type.xml в папке yml) — передает модель и тип товара.
После того как скачали нужный формат файла, открываем его в Excel, заменяем тестовые значения на свои и сохраняем новый XML. Сделать замену можно, просто заменив столбы в шаблоне на собственные значения из файла экспорта БД или экспорта/импорта.
Затем создаем фид с категориями: скачиваем файл yml-part-1.xml, открываем его в Excel и заменяем все значения на собственные из второго выгруженного файла.
Теперь открываем оба файла в NotePad++ и сохраняем в новом документе формата .xml.
В верхней части документа удаляем сгенерированную часть XML и ставим следующее:
<shop>
<name>SeoPulses</name>
<company> SeoPulses.ru</company>
<url>https://seopulses.ru</url>
<currencies>
<currency id="RUR" rate="1"></currency>
<currency id="USD" rate="70"></currency>
<currency id="EUR" rate="80«></currency>
</currencies>
Где:
- name — название магазина;
- company — название компании;
- url — адрес сайта;
- currencies — список валют (в этом случае они высчитываются по курсу ЦБ).
В конце документа проставляем закрывающие теги:
- </shop>
- </yml_catalog>
Сохраняем документ. Все готово, файл можно загружать на сервер.
Загрузка файла XML на сайт
Чтобы использовать файл в рекламных системах, достаточно загрузить его в корневую папку сайта на вашем сервере.
Открывать файл можно, набрав адрес site.ru/{nazvaniye-dokumenta}.xml. Например, для сайта seopuseses.ru я создал документ yml-feed.xml, ссылка на фид выглядит так: seopuseses.ru/yml-feed.xml.
Вот остальные файлы:
- первый тип YML: https://seopulses.ru/xml-name-ready.xml
- второй тип YML: https://seopulses.ru/xml-type-ready.xml
- для Google Merchant Center и Facebook: https://seopulses.ru/for-merchant-ready.xml
- Sitemap: https://seopulses.ru/for-sitemap.xml
Что делать, если данные с базы или модулей импорта достать не удалось?
В этом случае можно попробовать самостоятельно скачать данные при помощи функции importxml в Google Таблицах (вот пример).
Если же и этот метод не помог, а товаров достаточно много, то лучше обратиться к разработчикам, которые напишут парсер для сайта или смогут выгрузить данные из базы данных.
Создаем фид для Google Merchant Center
Если у вас уже есть созданный YML из CMS, из него можно будет взять все значения нужных нам тегов товаров (названия, цены, ссылки, картинки и другие). Также подойдут те же файлы, которые были сделаны вручную по инструкции выше.
Открываем файл for-merchant из папки merchant в Excel и заполняем все необходимые поля.
После этого между тегами <channel> и <item> добавляем этот фрагмент:
<title>SeoPulses.ru</title>
<link>https://seopulses.ru</link>
<description> Сео Пульс — блог об интернет-маркетинге. Сео-оптимизация, контекстная реклама (ppc), SMM-продвижение (в социальных сетях) и инструменты автоматизации.</description>
<pubDate>Mon, 02 Sep 2019 14:48:44 +0300</pubDate>
<lastBuildDate>Mon, 02 Sep 2019 14:48:44 +0300</lastBuildDate>
<language>ru</language>
Где:
- title — название магазина
- link — ссылка на сайт;
- description — описание магазина;
- language — язык;
- lastBuildDate — время генерации.
В конце документа добавляем два закрывающих тега:
- </channel>
- </rss>
Далее в NotePad++ потребуется открыть функцию «Найти и заменить», ввести ggggg и заменить на g:.
Все готово. Так же, как и файл XML, загружаем его на сервер и отправляем на проверку в Google Merchant Center.
Этот же фид можно будет использовать и для загрузки каталога в Facebook.
Как использовать ХML-фид
С помощью XML-фида можно запустить несколько дополнительных форматов в Яндекс.Директе, спецпредложения в Яндекс.Маркете, а также создать Sitemap для сайта.
Акции в Яндекс.Маркете
При работе с прайс-листом в формате Excel в Яндекс.Маркет нельзя передавать данные об акциях, купонах или подарке. Но если использовать XML-фид и добавить в название файла специальный код (promo), то в Маркет будет выгружаться специальная информация, которая сможет привлечь внимание пользователей и выделиться среди конкурентов.
Ссылка на фид с использованием кода выглядит так: https://seopulses.ru/xml-type-ready-promo.xml.
Со спецпредложениями можно попасть в блок Маркета «Скидки и акции», что увеличит количество показов и переходов.
К тому же при загрузке XML-фида отпадает необходимость обновлять файл каждые 30 дней, что удобно для сайтов, ассортимент которых не меняется либо меняется раз в несколько месяцев.
Читайте также:
- Угроза отключения магазина на Яндекс.Маркете: ошибки и способы решения
Динамические объявления Директа
На основе XML-фида можно запустить динамические объявления в Яндекс.Директе. В отличие от таргетинга на индекс сайта, фид дает возможность управлять фильтрами товаров, например, установив более высокие ставки на дорогие продукты или выделяя бренды.
Кроме этого, передавая цену в фиде, вы сможете попасть в товарную галерею Яндекса, которая станет еще одним источником трафика.
Читайте также:
- Динамические объявления Директа: тестируем, разрушаем стереотипы и повышаем продажи
- Динамические объявления в Директе: настройка и способы оптимизации
Смарт-баннеры
Запуск смарт-баннеров возможен только через файл YML. Создав XML-фид, можно легко запустить формат для любого типа бизнеса.
Смарт-баннер для рекламы изготовления и установки антресольных этажей и металлических лестниц
Смарт-баннеры для рекламы проката авто
Смарт-баннеры показывают более высокие результаты по сравнению со стандартными объявлениями в РСЯ, поэтому его обязательно стоит протестировать.
Читайте также:
- Как выжать всё из смарт-баннеров и увеличить выручку — кейс магазина кожаных аксессуаров
- Как создавать эффективные смарт-баннеры в Директе — советы и лайфхаки
- Смарт-баннеры для интернет-магазина: пять рекомендаций по использованию и настройке
Динамический ретаргетинг «ВКонтакте» и динамический ремаркетинг myTarget
Созданный в формате YML файл можно использовать для запуска динамического ретаргетинга во «ВКонтакте» и динамического ремаркетинга в myTarget.
Читайте по теме:
Динамический ретаргетинг «ВКонтакте»: инструкция по настройке
Создание файла Sitemap
Если у сайта нет файла Sitemap, то его можно создать в формате XML. Для этого подойдет файл for-sitemap.xml из папки.
Подключение к Google Merchant Center
Если процесс подключения к Google Merchant Center откладывается из-за отсутствия фида, можно сконвертировать YML-прайс в формат, подходящий для запуска торговых кампаний.
Чтобы сделать это, сначала откроем YML-файл в Excel, сохраним его в Google Sheets по шаблону, после этого загрузим в Merchant Center через Google Таблицы.
Читайте по теме:
- Как начать работу с Google Merchant Center
- Шесть советов по оптимизации фида для торговых кампаний в Google
- Как работать с умными торговыми кампаниями в Google Ads: обзор формата
- На что способны умные торговые кампании от Google? Обзор формата и кейсы
#excel #vba #avaya
#excel #vba #avaya
Вопрос:
Я хочу автоматизировать извлечение отчета Avaya cms в Excel,
Как мне это сделать с помощью VBA?
Ответ №1:
Я только что узнал, что Avaya генерирует для нас скрипт VBA, я написал небольшой скрипт на python, который изменяет параметры в скрипте avaya VBA, чтобы обновить день и имя файла и путь для извлечения расписания.
Комментарии:
1. он входит в систему автоматически или ему нужно сначала войти в CMS, а затем запустить скрипт?
Вам также может понравиться
Как я могу скрыть кнопку до тех пор, пока не будут установлены по крайней мере три флажка ввода (по одному из каждого отдельного набора из шести)?
8 января, 2022
Доступ к значениям массива с использованием ключа массива из Twig
12 апреля, 2023
Разрешение ts (2339) для встроенных перехватов для useState
31 августа, 2022
0 / 0 / 1 Регистрация: 01.05.2014 Сообщений: 10 |
|
1 |
|
01.06.2014, 00:29. Показов 2433. Ответов 9
Доброго времени суток. Посоветуйте. Стоит такая задача. Необходимо создать сайт, он будет представлять из себя что-то на подобие редактируемой таблицы, как в Excel. В общем, нужно чтобы при попадании на сайт, человек мог вносить изменения в эту таблицу, что-то добавлять, что-то удалять, чтобы были всякие типичные функции, там поиск и т.д и при этом доступ к нему чтобы могли осуществлять только определенный круг лиц, т.е. через логин и пароль, т.к. это будет БД фирмы. Может есть движок, который может реализовать что-нибудь подобное? Спасибо.
0 |
334 / 334 / 57 Регистрация: 24.08.2013 Сообщений: 1,472 |
|
01.06.2014, 12:50 |
2 |
он будет представлять из себя что-то на подобие редактируемой таблицы, как в Excel. Одной таблицы? «Сайт» из одной страницы? Что ли?
Может есть движок, который может реализовать что-нибудь подобное? К нек. движкам есть плагины, для работы с таблицами, но устроит ли имеющийся функционал — вопрос. Думаю, в данном случае заказать изготовление этого «сайта» будет проще и лучше.
0 |
0 / 0 / 1 Регистрация: 01.05.2014 Сообщений: 10 |
|
01.06.2014, 22:35 [ТС] |
3 |
Да, можно сказать, что сайт из одной таблицы. Там не нужные такие функции как в Excel, это я так чисто для примера сказал, там все будет намного проще. А для каких движок есть и какие плагины, подскажете? Добавлено через 3 минуты
Тем более если речь идет о корп. использовании — и админка не нужна. Нужные люди правят в экселе csv-файл, а скрипт уже его выводит. Единственное что — ограничить доступ к файлу на уровне корп. сети (в АД или что там контора использует) Дело в том, что будет внешний доступ. У этой фирмы много филиалов по России и нужна база к которой они все смогут иметь доступ. И запущен он будет на под-домене нашего сайта, типа baza.site.ru
0 |
367 / 405 / 165 Регистрация: 29.05.2014 Сообщений: 1,494 |
|
01.06.2014, 23:55 |
4 |
Зайди в тему про CMS любой движок интернет магазина справится с твоей задачей. А лучше всего сразу к фрилансерам баксов за 200-300 можно найти исполнителя который поставит и настроит. Я думаю не такие деньги для фирмы:
У этой фирмы много филиалов по России и нужна база к которой они все смогут иметь доступ.
0 |
334 / 334 / 57 Регистрация: 24.08.2013 Сообщений: 1,472 |
|
02.06.2014, 14:12 |
5 |
А для каких движок есть и какие плагины, подскажете? Ну тот же Вордпресс + TablePress или другой
Дело в том, что будет внешний доступ. У этой фирмы много филиалов по России и нужна база к которой они все смогут иметь доступ. Ну и что это меняет? Ничего абсолютно.
любой движок интернет магазина Это уже даже не пушка, а целый ГРАД
0 |
0 / 0 / 1 Регистрация: 01.05.2014 Сообщений: 10 |
|
03.06.2014, 01:53 [ТС] |
6 |
Хм. Понятно, спасибо за советы, что-нибудь надумаю ))) Отпишусь если что..
0 |
334 / 334 / 57 Регистрация: 24.08.2013 Сообщений: 1,472 |
|
03.06.2014, 19:25 |
7 |
Кстати, мб подойдёт просто заюзать гугло-документы
0 |
1 / 1 / 1 Регистрация: 06.06.2013 Сообщений: 20 |
|
05.07.2014, 16:32 |
8 |
dotprog, привет,на данный момент стоит такая же задача как у вас,не подскажите нашли решение?
0 |
0 / 0 / 1 Регистрация: 01.05.2014 Сообщений: 10 |
|
05.07.2014, 19:38 [ТС] |
9 |
Сообщение было отмечено Taatshi как решение Решение
dotprog, привет,на данный момент стоит такая же задача как у вас,не подскажите нашли решение? Привет. Сам сайт я еще не дописал, пока в процессе, но определился, решил сделать с нуля на javascript и ajax, т.к. подходящей альтернативы я не нашел.
0 |
1 / 1 / 1 Регистрация: 06.06.2013 Сообщений: 20 |
|
05.07.2014, 21:52 |
10 |
Сообщение было отмечено Taatshi как решение Решениея уже нашла выход джумла+jgrid(расширение),желаю успеха
1 |
Создание фида в формате XML является достаточно важной задачей в контекстной рекламе, позволяющей запустить магазин как в Яндекс.Маркете, так и использовать рекламные форматы «Динамические объявления» и «Смарт-баннеры» в Яндекс.Директе.
- Подготовка;
- Создание;
- YML;
- Загрузка;
- Примеры;
- Для Merchant Center (Google Shopping);
- Для чего это нужно.
Видеоинструкция
Подготовка к созданию XML-фидов
В первую очередь необходимо включить возможность работы с XML-файлами (панель Разработчик) для чего переходим в параметры Excel.
Далее в «Настройках ленты» ставим галочку у «Разработчик»-«XML».
Теперь в Excel можно открывать файлы в формате XML.
Создание XML-фида
Для того, чтобы открыть нужный нам XML-фид достаточно перетащить его в окно Excel, где в появившемся окне выбираем «XML-таблица» далее просто «Да».
В Excel откроется таблица со всеми значениями тегов, а если открыть вкладку «Разработчик»-«XML» и нажать на «Источник», то появиться карта с тегами.
Теперь нам осталось заполнить таблицу после чего нажать на «Экспорт», где мы даем название файлу и сохраняем его.
Если открыть файл в редакторе NotePad++, то файл будет выглядеть следующим образом.
Создаем YML-фид
Для этого делим YML файл на две составные части:
- <categories>
- <offers>
Оба фида мы составим отдельно и после соединим. Для начала выгрузим с базы, модулей экспорта-импорта данные о товарах в частности:
- ID;
- Ссылку;
- Ссылку на картинку;
- Наименование;
- Описание;
- Цену;
- Категорию;
- Тип (желательно, но не обязательно).
После выгружаем вторую таблицу со значениями:
- Название категории;
- ID-категории;
- Родительская категория (если таковое имеется).
Далее в зависимости от полученных данных используем одним из представленных прайс-листов:
- Упрощенный. Использует только name (название товара);
- С type. Передает модель и тип товара.
После того как скачали нужный формат файла открываем его в Excel и заменяем тестовые значения на свои и сохраняем новый XML (YML файл).
Далее скачиваем файл «yml-2», который также открываем в Excel и заменяем все значения на собственные (используя второй выгруженный файл).
Теперь открываем оба файла в NotePad++ и сохраняем в новом документе формата .xml.
В верхней части документа удаляем сгенерированную часть XML и ставим следующее:
SeoPulses SeoPulses.ru https://seopulses.ru
Где:
- Name — Название магазина;
- Company – название компании;
- url – адрес сайта;
- currencies – список валют (в этом случае они высчитываются по курсу ЦБ).
В конце документа также проставляем
- </shop>
- </yml_catalog>
Сохраняем документ, все готово файл можно загружать на сервер.
Загрузка файла XML
Для того, чтобы использовать файл в рекламных системах достаточно загрузить его в корневую папку сайта на Вашем сервере.
Далее открыть файл можно будет путем ввода ссылки site.ru/{nazvaniye-dokementa}.xml.
Пример, сайт seopuseses.ru и документ yml-feed.xml, ссылка получается: seopuseses.ru/yml-feed.xml.
Примеры созданных XML
1-й тип YML
https://seopulses.ru/xml-name-ready.xml
2-й тип YML
https://seopulses.ru/xml-type-ready.xml
Для Google Merchant Center и Facebook
https://seopulses.ru/for-merchant-ready.xml
Sitemap
https://seopulses.ru/for-sitemap.xml
Скачать все представленные в статье шаблоны в готовом виде можно по ссылке ниже:
https://drive.google.com/open?id=1Jkd9SYbtdE_nRwQEVgL6vGHfST4mIeQG
Создаем фид для Google Merchant Center
Если у Вас уже есть созданный YML из CMS, то можно открыть его в Excel после чего сохранить все значения для товаров. Далее открываем файл «for-merchant» (фид для Google Shopping) и заполняем все необходимые поля.
После этого добавляем между тегами <channel> и <item>:
https://seopulses.ru
Сео Пульс — блог об интернет-маркетинге. Сео-оптимизация, контекстная реклама (ppc), SMM-продвижение (в социальных сетях) и инструменты автоматизации. Mon, 02 Sep 2019 14:48:44 +0300 Mon, 02 Sep 2019 14:48:44 +0300 ru
Где:
- title – название магазина
- Link – ссылка на сайт;
- Description – описание магазина;
- Language – язык;
- lastBuildDate – время генерации.
В конце документа добавляем
</channel>
</rss>
Далее в NotePad++ потребуется открыть функцию «Найти и заменить» и ввести «ggggg» и заменить на «g:».
Все готово, аналогично файлу YML загружаем его на сервер, после чего можно отправлять на проверку в Google Merchant Center.
Этот же фид можно будет использовать и для загрузки каталога в Facebook.
Что делать если данные с базы или модулей импорта достать не удалось?
В этом случае можно попробовать самостоятельно скачать данные при помощи функции importxml в Google Таблицах. Пример:
https://docs.google.com/spreadsheets/d/10pHnGH9VRMaSEF10fKm_er1k4-BEqoEdpNmdMnQXEHQ/edit#gid=0
Если же и этот метод не помог, а товаров достаточно много, то лучше всего обратиться к разработчикам, которые напишут парсер для сайта либо смогут выгрузить данные из БД.
Для чего это все нужно?
В первую очередь следует понимать, что данный способ подойдет для тех, у кого обновления товаров происходят редко, либо страницы цены/предложения и вовсе не меняются.
Применение №1 Акции в Яндекс.Маркете
Если в Яндекс.Маркете Вы все еще используете прайс-лист в формате Excel, то Вы не сможете передать данные об акциях, купонах или подарке. Но если использовать данный метод и добавить специальный код, например:
https://seopulses.ru/xml-type-ready-promo.xml
То в Яндекс.Маркет будет выгружена дополнительная информация, которая сможет привлечь внимание пользователей и выделиться среди конкурентов.
Дополнительно благодаря наличию акций можно попасть в блок «Скидки и акции», что увеличит количество показов и переходов.
К тому же при загрузке XML-фида отпадает необходимость обновлять файл каждые 30 дней, что удобно для тех сайтов, ассортимент которых не меняется, либо меняется раз в несколько месяцев.
Применение №2 Динамические объявления
Если имеется созданная рекламная кампания в формате динамических объявлений через индекс сайта, то имеется возможность запустить ее на основе фида.
В этом случае Вы сможете управлять фильтрами товаров, например, установив более высокие ставки на дорогие товары или выделяя бренды из каталога.
Дополнительно, передавая цену в фиде Вы сможете попасть в Товарную галерею Яндекса, которая также является еще одним источником трафика.
Применение №3 Смарт-баннеры
В случае со смарт-баннерами запуск возможен только через файл YML, поэтому создав для предложений своего сайта XML-фид можно легко запустить данный формат в любом типе бизнеса.
Пример №1. Изготовление и установка антресольных этажей и металлических лестниц.
Пример №2 Прокат авто
Данный формат дает хорошие показатели по сравнению со стандартными объявлениями в РСЯ поэтому его обязательно стоит протестировать.
Применение №4 Создание файла Sitemap
Если же у Вашего сайта нет файла Sitemap, то всегда можно создать его в формате XML. Для этого подойдет файл «for-sitemap.xml» (в папке по ссылке).
Применение №6 Подключение к Google Merchant Center
Если процесс подключения к Google Merchant Center откладывается из-за отсутствия фида, то имеется возможность быстро сконвертировать YML-прайс в формат, подходящий для запуска торговых кампаний. Для этого просто сконвертируем имеющийся YML-файл в Excel после чего загрузим его в Google Merchant Center через Google Таблицы.
Первоначально эту функцию выполнял друг, потому что я никогда не общался с Excel раньше, и эта функция не изучалась, но эта функция более практична, потому что, хотя у многих компаний есть веб-сайты, другим отделам компании также может понадобиться Экспорт данных компании на бумагу с целью изучения данных компании, поэтому многие компании нуждаются в этой функции.
В последние несколько дней я изучал функцию экспорта данных из Weaving Dreams. Сначала я хотел написать php-программу для экспорта в функцию excel. Я не стал писать код, поэтому я искал этот учебник в Интернете, и в нем много учебных пособий по поиску, однако немногие из них верны, включая опыт Baidu, и я протестировал бесчисленное множество.
Но позвольте мне искать библиотеку классов phpexcel, написанную иностранцами, это особенно касается базы данных, чтобы преуспеть,
Адрес для скачивания: http://phpexcel.codeplex.com/releases/view/107442
В этом есть много примеров, включая Excel, CSV, Word, PDF, HTM и другие форматы файлов, экспортированные из базы данных. Вы можете обратиться к примерам.
Гу КанРедактор сначала показал вам эффект экспорта из ткацкой системы мечты:
Тем не менее, я столкнулся с проблемой, что предыдущий раз нормально отображался в Excel, но добавленное время теперь показывает: 1970-01-01, яBaiduЯ искал онлайн-учебники и не нашел соответствующих учебников. В Интернете я увидел, что в Excel есть ошибки, и время расчета Excel началось с 1900-1-1. Я не знаю, нужно ли его преобразовывать.
Проблема со временем, наконец, нашла причину, и исходное поле было написано неправильно. Был изначальноpubdate, Результат написанsentdate
Другие отображаются нормально. Теперь давайте представим метод экспорта данных из ткацкой системы сна:
1. Загрузите вышеуказанную библиотеку классов phpexcel с иностранного веб-сайта, разархивируйте ее и поместите в корневой каталог.
2. Затем напишите программу экспорта. Это можно написать, обратившись к приведенному выше примеру. Обратите внимание, что если вы этого не сделаете, программа может вызвать ошибку 404. Это ваш путь. Я настроил это. Вначале я был неправ по этой причине. Наконец, я обнаружил, что путь был неправильным.
Программа экспорта в основном выполняет следующие четыре шага:
Запрос данных из снов
б. Форма настройки
c. Поместить данные в таблицу
c. Экспорт данных в Excel
Большинство настроек в нем предназначены для вызова функций в классе phpexcel, что здесь не будет объяснено, см. код, который я написал в файле dedetoexcel.php:
require_once (DEDEINC . '/common.func.php');
if ($action == 'allexport') {
include_once DEDEINC . '/PHPExcel.php';
// Create new PHPExcel object
$objPHPExcel = new PHPExcel();
$objActSheet = $objPHPExcel->getActiveSheet();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")
->setCategory("Test result file");
//www.genban.org и Banban
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'id')
-> setCellValue ('B1', 'Title')
-> setCellValue ('C1', 'Sort')
-> setCellValue ('D1', 'Время публикации')
-> setCellValue ('E1', 'Keyword')
-> setCellValue ('F1', 'Введение')
-> setCellValue («G1», «Время выпуска»)
-> setCellValue ('H1', 'Member id')
->setCellValue('I1', 'flag')
-> setCellValue ('J1', 'Column id');
$query = "Select * From `dede_archives` ";
$dsql->SetQuery($query);
$dsql->Execute();
$index = 1;
while ($row = $dsql->GetArray()) {
$index++;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A' .
$index, $row['id'])->setCellValue('B' .
$index, iconv("gb2312","utf-8",$row['title']))->setCellValue('C' .
$index, $row['sortrank'])->setCellValue('D' .
$index, "2015-7-23")->setCellValueExplicit('E' .
$index, iconv("gb2312","utf-8",$row['keywords']))->setCellValue('F' .
$index, iconv("gb2312","utf-8",$row['description']))->setCellValue('G' .
$index, gmdate("Y-m-d",$row['pubdate']))->setCellValue('H' .
$index, $row['mid'])->setCellValue('I' .
$index, $row['flag'])->setCellValue('J' .
$index, $row['typeid']);
}
// Rename worksheetwww.dedebase.com
$objPHPExcel->getActiveSheet()->setTitle('Simple');
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="list.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory :: createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
}
Обратите особое внимание: в этой верхней строке напишите путь вашего класса phpexcel, загруженного с веб-сайта, то есть импортируйте этот класс в этот файл, и вызывайте его только в том случае, если он импортирован в него.
Наконец, напишите в шаблоне любую из следующих двух строк:
<input name = "ss12" value = "Экспорт всех заказов" style = "width: 90px; margin-right: 6px" onclick = "location = 'crtadmin / download_oneapply.php? action = allexport';" class = "np coolbg "type =" button ">
<a href='crtadmin/download_excel.php?action=allexport'>execl</a>
ЯХороший брендВторая строка в редакторе заключается в том, что некоторым веб-мастерам может потребоваться только гиперссылка, а некоторым может потребоваться ввод данных, и вы можете выбрать один из двух.
This plugin is a wrapper for Maatwebsite/Laravel-Excel package. It adds convenient tools to import/export excel files. The complete documentation can be found at: http://www.maatwebsite.nl/laravel-excel/docs
Plugin now uses v3 of Maatwebsite/Laravel-Excel because v2 is no longer possible to use with current version of OctoberCMS (Laravel 6).
To upgrade your application code please see Upgrade guide tab on plugin page.
From Maatwebsite/Laravel-Excel documentation:
Deprecations
ALL Laravel Excel 2.* methods are deprecated and will not be able to use in 3.0 .
Excel::load() is removed and replaced by Excel::import($yourImport)
Excel::create() is removed and replaced by Excel::download/Excel::store($yourExport)
Excel::create()->string(‘xlsx’) is removed an replaced by Excel:raw($yourExport, Excel::XLSX)
3.0 provides no convenience methods for styling, you are encouraged to use PhpSpreadsheets native methods.You can find an example upgrade for an export here: https://github.com/Maatwebsite/Laravel-Excel/issues/1799
- Vdomah.BlogViews — track blog posts views
- Vdomah.Roles — manage user access based on roles system
- Vdomah.JWT Auth API — Token Authentication for API integrated with RainLab.User
If after installation you got any errors related to the maatwebsite/excel vendor not found: please run from your project’s root
composer require maatwebsite/excel:3.1
The complete documentation can be found at: http://www.maatwebsite.nl/laravel-excel/docs
Please see the Upgrade Guide tab to understand the new code paradigm.
Example export from page code section
use VdomahExcelClassesExcel; use VdomahExcelClassesExportExample; function onStart() { return Excel::export(ExportExample::class, 'my_export_filename'); } // export class use MaatwebsiteExcelConcernsFromCollection; use MaatwebsiteExcelConcernsWithEvents; use MaatwebsiteExcelConcernsWithHeadings; use MaatwebsiteExcelEventsAfterSheet; class ExportExample implements FromCollection, WithHeadings, WithEvents { // set the headings public function headings(): array { return [ 'Company name', 'Flyer name', 'Co Company', 'Post Code', 'Online invitation', 'Pending' ]; } // freeze the first row with headings public function registerEvents(): array { return [ AfterSheet::class => function(AfterSheet $event) { $event->sheet->freezePane('A2', 'A2'); }, ]; } // get the data public function collection() { $data = []; // fill your export data return collect($data); } }
Example import
// importing data somewhere, e.g. in your CMS page: function onStart() { Excel::excel()->import(new PartsImport, $filePath); } // import class use IlluminateSupportFacadesHash; use MaatwebsiteExcelConcernsToModel; use RainLabUserModelsUser; class ExampleImport implements ToModel { /** * @param array $row * * @return User|null */ public function model(array $row) { // manipulate with imported data in $row; e.g. you got some $data formed; return User::create($data); } }
New export code paradigm
Now instead of closures in v2 you need to create new class to export your data in v3.
The main goal while moving from v2 to v3 is to get your export data in collection() method of your Export class (see demo using faker).
Example export class is provided with plugin:
use VdomahExcelClassesExcel; Excel::excel()->load(base_path() . '/storage/app/media/file.xlsx', function($reader) { dd($reader); });
Importing a file
To start importing a file, you can use ->load($filename). The callback is optional.
Excel::load('file.xls', function($reader) { // Getting all results $results = $reader->get(); // ->all() is a wrapper for ->get() and will work the same $results = $reader->all(); });
Collections
Sheets, rows and cells are collections, this means after doing a ->get() you can use all default collection methods.
// E.g. group the results $reader->get()->groupBy('firstname');
Getting the first sheet or row
To get the first sheet or row, you can utilise ->first().
$reader->first();
-
Found the plugin useful
on
4 Apr, 2021
-
Szabó Gergő
Found the plugin useful
on
6 Aug, 2018
Useful plugin. Thank you!
-
Justin Patterson
Found the plugin useful
on
6 Feb, 2018
Another plugin that covers my basic needs, that uses the base package I’m already familiar with and have been implementing manually for some time. Easy to use and the original package documentation is helpful and works. On my internal reporting site, it gets used a ton. Thank you for providing it.
-
Mark van den Elzen
Found the plugin useful
on
11 Sep, 2017
Thanks for this plugin!!
It took a short while figuring it out, a very simple example for a export using a model. It may some others some time?
use VdomahExcelClassesExcel;
Excel::excel()->create(‘File name’, function($excel) {
$excel->sheet('Sheet', function($sheet) { $model = Yourmodelname::get(); $sheet->fromModel($model); });
})->download(‘xls’);
-
Thu Lieu Vinh
Found the plugin useful
on
26 Jun, 2017
https://user-images.githubusercontent.com/26702880/27474018-323efc44-582b-11e7-9980-f1b418d910c8.PNG
But after Excel::load() code column become date format
[code] => CarbonCarbon Object
(
[date] => 2017-06-23 00:00:00.000000
[timezone_type] => 3
[timezone] => UTC -
Art
author
Replied
on
26 Jun, 2017
plugin is just a wrapper for 3rd party library, you need to check the logic there
-
Vojta Svoboda
Found the plugin useful
on
18 Jun, 2017
3.0.5 |
Compatibility with PhpOfficePhpSpreadsheetReaderIReader Dec 16, 2021 |
---|---|
3.0.4 |
Update for compatibility with Laravel 6 Oct 01, 2020 |
3.0.3 |
Added xlsx_styled reader type to fix error in Phpoffice/PhpSpreadsheet with custom styled .xlsx files. May 03, 2020 |
3.0.2 |
File types restriction removed from export method. Added import shortcut method May 03, 2020 |
3.0.1 |
!!! Migration to Maatwebsite.Laravel-Excel version 3.x. May 23, 2019 |
3.0.0 |
Migration to Maatwebsite.Laravel-Excel version 3.x. May 23, 2019 |
1.0.3 |
Compatibility with latest build (446 at the moment). Feb 04, 2019 |
1.0.2 |
Class to get excel object easily. May 08, 2017 |
1.0.1 |
Initialize plugin. Dec 02, 2016 |
Changes in VdomahExcelClassesExcel class
- use of Singleton trait
- use instance() method instead of getInstance()
- export method added which implements Excel::download method of Maatwebsite.Laravel-Excel v3
Example export from page code section
use VdomahExcelClassesExcel; use VdomahExcelClassesExportExample; function onStart() { return Excel::export(ExportExample::class, 'my_export_filename'); }
New export code paradigm
Now instead of closures in v2 you need to create new class to export your data in v3.
The main goal while moving from v2 to v3 is to get your export data in collection() method of your Export class (see demo using faker).
Example export class is provided with plugin:
<?php namespace VdomahExcelClasses; use MaatwebsiteExcelConcernsFromCollection; use MaatwebsiteExcelConcernsWithEvents; use MaatwebsiteExcelConcernsWithHeadings; use MaatwebsiteExcelEventsAfterSheet; class ExportExample implements FromCollection, WithHeadings, WithEvents { // set the headings public function headings(): array { return [ 'Company name', 'Flyer name', 'Co Company', 'Post Code', 'Online invitation', 'Pending' ]; } // freeze the first row with headings public function registerEvents(): array { return [ AfterSheet::class => function(AfterSheet $event) { $event->sheet->freezePane('A2', 'A2'); }, ]; } // get the data public function collection() { $data = []; $faker = FakerFactory::create(); $limit = 10; for ($i = 0; $i < $limit; $i++) { $data[] = [$faker->name, $faker->word, 'N', $faker->postcode, $faker->word, $faker->word]; } return collect($data); } }