Выгрузка данных в Excel c помощью джоба
На страницу 1, 2, 3, 4 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Чт Дек 20, 2018 15:01  Выгрузка данных в Excel c помощью джоба |
|
Полезность: Нет оценки
|
всем добрый день.
подскажите, как создать джоб, который будет по расписанию делать выгрузку данных за предыдущий день.
нашел, что джоб создается через меню Система - Выполнение заданий по расписанию....
1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Чт Дек 20, 2018 15:26  Re: Выгрузка данных в Excel c помощью джоба |
|
Полезность: Нет оценки
|
Псевдоним123 пишет: | 1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты |
У нас используется 2 варианта
1) экселевский файл выгружается на fio (файловую систему сервера) и потом приемопередатчиком перекладывается на сетевой ресурс
2) сформированный файл отправляется пользователям по почте |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Чт Дек 20, 2018 15:38  Re: Выгрузка данных в Excel c помощью джоба |
|
Полезность: Нет оценки
|
Blackmore64 пишет: | Псевдоним123 пишет: | 1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты |
У нас используется 2 варианта
1) экселевский файл выгружается на fio (файловую систему сервера) и потом приемопередатчиком перекладывается на сетевой ресурс
2) сформированный файл отправляется пользователям по почте |
а можете по данным вариантам какие-нибудь примеры показать? |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Дек 20, 2018 15:52   |
|
Полезность: Нет оценки
|
Сам отчет написан? Подойдет только OOXML. |
|
 |
Blackmore64 Профи
Вступление в Клуб: 17.01.2017
|
Чт Дек 20, 2018 15:55   |
|
Полезность: Нет оценки
|
Volod пишет: | Сам отчет написан? Подойдет только OOXML. |
Да, точно - речь про OOXML
Псевдоним123 пишет: | а можете по данным вариантам какие-нибудь примеры показать? |
Надо OOXML? |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Чт Дек 20, 2018 16:30   |
|
Полезность: Нет оценки
|
а не через OOXML никак не получится? |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Дек 20, 2018 17:35   |
|
Полезность: Нет оценки
|
Цитата: | а не через OOXML никак не получится? |
Ну почему - можно держать станцию включенной с навигатором, джобом послать на нее event на запуск отчета. |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Чт Дек 20, 2018 17:52  Re: Выгрузка данных в Excel c помощью джоба |
|
Полезность: Нет оценки
|
Псевдоним123 пишет: | всем добрый день.
подскажите, как создать джоб, который будет по расписанию делать выгрузку данных за предыдущий день.
нашел, что джоб создается через меню Система - Выполнение заданий по расписанию....
1) можно ли сделать выгрузку в Excel?
2) если да, то как можно прописать папку, в которую данный файл должен сохраняться; если нет - выслушаю все варианты |
Это практически нереально. В сбертехе была библиотека для генерации файлов word и excel на сервере , может есть у кого. Если простой отчет, можно генерить xml , html, csv. Excel их показывает. |
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Пт Дек 21, 2018 09:24  Re: Выгрузка данных в Excel c помощью джоба |
|
Полезность: Нет оценки
|
vtar пишет: |
Это практически нереально. В сбертехе была библиотека для генерации файлов word и excel на сервере , может есть у кого. Если простой отчет, можно генерить xml , html, csv. Excel их показывает. |
Гляньте тип OOXML. Там и работа с EXCEL и с WORLD. Ну конечно с теми форматами, которые основаны на XML.
Я лично работал с EXCEL и на чтение и на запись.
На запись: Извлечение из БД заранее подготовленного шаблона-болванки, наполнение его данными и передача в качестве результата серверу отчетов. Схема такая так как запуск отчета происходит при получении сообщения через интегратор. Интегратор же отвечает вызывающему и сообщает путь на fio сформированного отчета.
На чтение : была "странная" задача. JOB, который опрашивает Microsoft Exchange Server по протоколу POP3(Реализация череp JAVA), забирает почту , извлекает вложения , в т.ч. EXCEL-евские файлы. и проводит форматные проверки этого файла EXCEL и оповещает отправителя письма по SMTP о результате. Изврат конечно. Свои "фи" я аналитику высказал, но ради спортивного интереса реализовал.
Обе задачи через использование OOXML в безинтерфейсном режиме. В плане EXCEL , OOXML конечно не реализует весь богатый функционал электронных таблиц. На какие-то ограничения натыкался и подстраивался под нюансы. |
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Пт Дек 21, 2018 09:40   |
|
Полезность: Нет оценки
|
Общий принципа на запись :
Чтобы не возить с собой тушки, определяем макросы :
Код: | pragma macro(xl,'::[OOXML].[API_XL]');
pragma macro(lp,'::[SHABLON_DOC].[LIB_OOXML]');
pragma macro (put, '&xl.put([1],[2],[3])',substitute);
|
далее
Код: | &lp.xl_init('SAMPLE_NAME'); -- извлечение шаблона c именем SAMPLE_NAME из справочника SHABLON_DOC
-- Наполнение данными, различные форматирования
&put(12, 1, 'привет. этот текст в строке 12 колонке 1');
&put(6, 7, 'привет. этот текст в строке 6 колонке 7');
&xl.PutPageBreak(20);
&xl.set_row_height(.....
&lp.xl_finish; -- завершение отчета и передача как результата для сервера отчетов (при условии что сервер отчетов есть)
|
В любом случае вам придется исследовать библиотеки в типе OOXML и SHABLON_DOC. Посмотрите зависимости от этих библиотек , там есть много дистрибутивных отчетов для примера.
Последний раз редактировалось: De Mian (Пт Дек 21, 2018 11:08), всего редактировалось 1 раз |
|
 |
vtar Эксперт
Вступление в Клуб: 20.03.2009
|
Пт Дек 21, 2018 09:52   |
|
Полезность: Нет оценки
|
De Mian
я пробовал как то, у меня не взлетело через ooxml
так понял что он не может "из оракла" (из джоба) сгенерить xls на сервере
Или у меня руки кривые.
надо вызывать с клиента (из Навигатора) ? |
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Пт Дек 21, 2018 09:57   |
|
Полезность: Нет оценки
|
vtar пишет: | De Mian
я пробовал как то, у меня не взлетело через ooxml
так понял что он не может "из оракла" (из джоба) сгенерить xls на сервере
Или у меня руки кривые.
надо вызывать с клиента (из Навигатора) ? |
Прям создать XLS он вроде бы не может, но можно подготовить шаблон(SHABLON_DOC), извлечь из базы и наполнить данными(OOXML). Выше пример строк кода как раз на эту тему.
Результат можно либо серверу отчетов передать либо через api получить blob и сохранить самостоятельно в файл. Это работает в безинтерфейсном режиме и с новыми форматами основанными на XML.
Можно с офисом так же работать в интерфейсном режиме через навигатор, тогда нужно чтобы формат файла могла читать клиентская машина. Это через взаимодействие навигатора и клиентской машины через VBA-валидацию.
Смотрите готовые примеры дистрибутивных отчетов через обратные зависимости.
UPDATE : не XLS, а XLSX. |
|
 |
Ezhik Участник со стажем
Вступление в Клуб: 17.04.2009
|
Пт Дек 21, 2018 11:07   |
|
Полезность: 1
|
Можно создавать файлы без шаблона (без SHABLON_DOC). В результате получить готовый блоб, который уже запихнуть в файл каким-нибудь blob2file или смотреть в сторону [API_ORSA].putReport (Формирование задания серверу отчётов). Но для перекладывания на локальную машину необходим клиент-скрипт, который в джобе невозможен, т. е. надо отдельную операцию на клиентской машине (можно, например, смотреть в сторону [API_ORSA].putReport2SaveAs или старого экспорта-импорта файлов) или настраивать приемо-передатчик. |
|
 |
De Mian Профи
Вступление в Клуб: 26.09.2008
|
Пт Дек 21, 2018 11:27   |
|
Полезность: Нет оценки
|
Ezhik пишет: | Можно создавать файлы без шаблона (без SHABLON_DOC). В результате получить готовый блоб, |
Дайте пример. не видел нигде что-то чтобы можно был именно создать файл. в OOXML только правка и чтение. а сам файл готовится заранее. НО могу конечно не знать всего
Ezhik пишет: | Но для перекладывания на локальную машину необходим клиент-скрипт, который в джобе невозможен, т. е. надо отдельную операцию на клиентской машине (можно, например, смотреть в сторону [API_ORSA].putReport2SaveAs или старого экспорта-импорта файлов) или настраивать приемо-передатчик. |
Либо с линукса одну из папок fio расшаривать(samba) для доступа клиента под Windows.
В общем всё решаемо..... |
|
 |
Псевдоним123 Участник - экстремал
Вступление в Клуб: 05.06.2018
|
Пт Дек 21, 2018 11:50   |
|
Полезность: Нет оценки
|
De Mian пишет: | Общий принципа на запись :
Чтобы не возить с собой тушки, определяем макросы :
Код: | pragma macro(xl,'::[OOXML].[API_XL]');
pragma macro(lp,'::[SHABLON_DOC].[LIB_OOXML]');
pragma macro (put, '&xl.put([1],[2],[3])',substitute);
|
далее
Код: | &lp.xl_init('SAMPLE_NAME'); -- извлечение шаблона c именем SAMPLE_NAME из справочника SHABLON_DOC
-- Наполнение данными, различные форматирования
&put(12, 1, 'привет. этот текст в строке 12 колонке 1');
&put(6, 7, 'привет. этот текст в строке 6 колонке 7');
&xl.PutPageBreak(20);
&xl.set_row_height(.....
&lp.xl_finish; -- завершение отчета и передача как результата для сервера отчетов (при условии что сервер отчетов есть)
|
В любом случае вам придется исследовать библиотеки в типе OOXML и SHABLON_DOC. Посмотрите зависимости от этих библиотек , там есть много дистрибутивных отчетов для примера. |
попробовал сделать, но возникли вопросы: Куда данный файл сохраняется? как его найти? |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|