03.02.2016 09:36 | |
reddimonusПользователь iNETsHOP Количество сообщений 9 Зарегистрирован: 27-09-2014, 21:24:42 |
Хотелось бы создать красивый прайс лист
Добрый день! Появилась необходимость выгрузить определенные группы товаров (группы товаров нужно выбирать и отмечать галочками) в формат EXCEL. Просят оформить красиво, с шапкой прайс листа, адресом фирмы, внизу также под прайсом пару своих строк добавить. Фото вставить в ячейки прайса. Выделить разделы прайса (группы товаров) отдельной строкой с другим шрифтом и закраской фона ячеек. Как подойти к данному вопросу ? |
03.02.2016 10:47 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Экспорт прайса
Вставить объекты с фотографиями товаров можно, изменить шрифты и цвет ячейки тоже каким-то отдельным макросом или скриптом. Но группы товаров представляют собой дерево и их может быть не ограниченное количество. Так же не указано требуется ли пользователю комбинировать группы разных уровней вложенности. Использовать для экспорта файл шаблона не подойдет, так как в конце прайс-листа должен быть еще какой-то текст, а количество строк прайса естественно зарание не известно. Можно написать отдельный плагин и включить в него все пожелания пользователя. |
03.02.2016 10:58 | |
reddimonusПользователь iNETsHOP
Тема начата
Зарегистрирован: 27-09-2014, 21:24:42 |
Экспорт прайса
Цитата Написал: support Использовать для экспорта файл шаблона не подойдет, так как в конце прайс-листа должен быть еще какой-то текст, а количество строк прайса естественно зарание не известно. Можно написать отдельный плагин и включить в него все пожелания пользователя. 1. А если принебречь текстом внизу прайса, можно ли использовать шаблон ? 2. Насколько я понял, при экспорте прайса СНАЧАЛА выполняется запрос который формирует строки для экспорта в EXCEL, а ЗАТЕМ какая-то недоступная пользователю процедура открывает новый EXCEL файл и переносит туда данные. Можно ли вмешаться в процесс переноса данных для того например чтобы VBA макросом или как-то еще изменить оформление формируемого документа ? К примеру название категории (я могу создать строку с определенным значением в какой-то ячейке) выделить жирным. Ну или не закрывая готовый сформированный документ выполнить VBA скрипт. А уже потом закрыть файл. Лучше бы конечно построчно, тогда картинки можно вставлять. Или я неправильно понимаю процедуру экспорта ? |
03.02.2016 11:39 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Стандартный экспорт в Excel из программы выполняет заранее подготовленный SQL-запрос на выборку набора данных, открывает COM-сервер Excel.Application и построчно экспортирует в него данные в виде строк. Если вы хотите сделать все сами, то вы можете например создать собственный VBScript и получить в нем данные выборки через ADODB или OLEDB: Код
В этот пример вы можете добавить подключение к Excel.Application и перенести любые данные из выборки на лист. Фотографии товаров наверное потребуется предварительно сохранить в файл, а затем добавить как объект рисунка из файла. |
03.02.2016 11:48 | |
reddimonusПользователь iNETsHOP
Тема начата
Зарегистрирован: 27-09-2014, 21:24:42 |
Цитата Написал: support Стандартный экспорт в Excel из программы выполняет заранее подготовленный SQL-запрос на выборку набора данных, открывает COM-сервер Excel.Application и построчно экспортирует в него данные в виде строк. Если вы хотите сделать все сами, то вы можете например создать собственный VBScript и получить в нем данные выборки через ADODB или OLEDB: В этот пример вы можете добавить подключение к Excel.Application и перенести любые данные из выборки на лист. Фотографии товаров наверное потребуется предварительно сохранить в файл, а затем добавить как объект рисунка из файла. Понятно. Это в принципе реализуемо, но достаточно сложно. Можно ли просто получить возможность выполнить некоторый VBA скрипт после уже загрузки данных в EXCEL но до закрытия документа ? По типу импорта прайсов. И еще вопросик. Шеф желает отмечать галочками те группы товаров, что войдут в прайс. Возможно ли реализовать это в стандартном экспорте передавая выбранное из справочника не как один параметр, а перечень через запятую ? Тогда в скрипте экспорта я могу применить IN (:параметр или список параметров). |
03.02.2016 12:03 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Специфический экспорт в Эксель
В экспорте данных в Эксель не предусмотрено вызов макроса и его негде хранить. Множественный выбор одного параметра в динамических наборах параметров так же не предусмотрен. Вы можете сделать заранее определенное количество однотипных параметров, например выбор 10-20 групп и формировать собственный список уже при экспорте. |
03.02.2016 18:35 | |
MaXXПользователь iNETsHOP Количество сообщений 64 Зарегистрирован: 11-11-2008, 04:35:57 |
Экспорт в Excel через VBS
Цитата Написал: reddimonus Это в принципе реализуемо, но достаточно сложно. Можно ли просто получить возможность выполнить некоторый VBA скрипт после уже загрузки данных в EXCEL но до закрытия документа ? По типу импорта прайсов. Ничего сложного нет. Вот за 30 минут переделал пример сценария VBS для экспорта в Эксель полей: код товара, Название, цена, основаная группа Замените в примере имя сервера, базу данных, логин и пароль на свои. Код
Этот пример переносит занные из sql-запроса "select G_ID, G_NAME, price, GR_FULL_NAME from TBL_GOODS, TBL_GROUPS where G_GR_ID = GR_ID" в пустой файл-шаблон Эксель "C:\TEMP\price1.xls" начиная с 6-й строки и затем спрашивает куда сохранить новый файл. Если нужно еще вызвать макрос, то после передачи данных из запроса можно дописать oExcelApp.Application.Run "MarcosName" |
04.02.2016 17:20 | |
vikarenkoПользователь iNETsHOP Количество сообщений 25 Зарегистрирован: 17-12-2014, 08:45:27 |
Как в этом макросе вставить фото товаров в ячейки Excel? |
04.02.2016 19:10 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Прайс-лист в Excel с фотографиями через VBScript
Вот пример создания прайс-листа в который потом производится экспорт фотографий товаров (не забудьте настроить доступ к базе данных): Код
По данному примеру можно дальше кастомизировать вид прайса - менять шрифты, цвет текста и фона, границы ячеек, высоту строк и ширину колонок и т.п. Вся использованная информация взята из документации по Excel, VBA, VBS. Так же по Excel и VBA существует большое количество специализированных форумов где можно найти примеры работы с листами, ячейками, регионами, фигурами и прочими элементами приложения Excel. В прикрепленном архиве текст данного сценария. |