Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сформировать Эксель на сервере и выложить в папку / 23 сообщений из 23, страница 1 из 1
06.09.2021, 11:56
    #40095440
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Сейчас пользователь нажимает кнопку в экселе и с помощью VBA происходит подключение к серверу, запускается хранимку, она выгружает данные и формулы для Экселя, дальше результат обрабатывается на VBA, строиться сводная таблица, форматирование и т.п.

Хранимка выдает результат например:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
				select 
						 'Название площадки'	= mc.production_name	
						,'Код набивки'			= mc.stuffing_id	
						,'Название набивки'		= mc.stuffing_name	
						,'Тип набивки'			= mc.stuffing_type
						,'Группа набивок'		= mc.stuffing_group	
						,'Ограничение по замесам для группы'	= mc.stuffing_group_restrictions_count	
						,'Ферментация дней'		= mc.fermentation_days	
						,'Созревание дней'		= mc.maturation_days	
						,'Упаковка дней'		= mc.packaging_days	
						,'Объем 1 замеса, кг'	= mc.stuffing_kg	
						,'Объем камеры, кг'		= mc.chamber_kg	
						,'Дата закладки'		= ld.dt	
						,'Дата выхода'			= dateadd(day, mc.fermentation_days + mc.maturation_days ,ld.dt)
						,'Дата доступности'		= dateadd(day, mc.fermentation_days + mc.maturation_days + mc.packaging_days ,ld.dt)

						,'Закладка (замес)'		= '=VLOOKUP(RC3, ''План набивок''!C5:C1500, MATCH(RC[-3],''План набивок''!R2C5:R2C1500, 0) + 6, 0)'
						,'Итог, кг'				= '=VLOOKUP(RC3, ''План набивок''!C5:C1500, MATCH(RC[-4],''План набивок''!R2C5:R2C1500, 0) + 7, 0)'
			
				from #main_columns as mc
				cross join #list_dt as ld
				where mc.sap_id is null



Подскажите какие можно использовать подходы, что бы построить сразу отчет на стороне сервера с формулами, форматированием и уже выложить его в папку, а не формировать на VBA и потом только сохранять в папку?
SSRS не поддерживает выгрузку сложных формул

Версия сервера 2017
...
Рейтинг: 0 / 0
06.09.2021, 12:00
    #40095443
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha,

как вариант - ХП запускает JOB, в котором на PowerShell заполняется все как нужно и сохраняется куда угодно (с доступом конечно же)
...
Рейтинг: 0 / 0
06.09.2021, 12:09
    #40095445
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Oleg_SQL
Focha,

как вариант - ХП запускает JOB, в котором на PowerShell заполняется все как нужно и сохраняется куда угодно (с доступом конечно же)


Зачем эти сложные телодвижения?

Мухи отдельно - котлеты отдельно.

1. Считаем на сервере.
2. Показываем в экселе.
3. VBA идет лесом.

ЗЫ. Те, "сложные" формулы, которые продемонстрировал ТС - вполне по плечу серверу. Он сложнее может.
...
Рейтинг: 0 / 0
06.09.2021, 12:11
    #40095447
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
aleks222,

форматирование тоже на сервере формировать?
...
Рейтинг: 0 / 0
06.09.2021, 12:16
    #40095450
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Oleg_SQL
aleks222,

форматирование тоже на сервере формировать?


Форматирование, заданное в экселе - сохраняется при обновлении данных.
Если только там не форматирование сумашедшего.
...
Рейтинг: 0 / 0
06.09.2021, 13:35
    #40095471
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Мне нужно сформировать статичный отчет, то есть вставить данные и формулы, пользователь в дополнительном столбе указывает значения и происходит дополнительный расчет
Форматирование не только отчета, но еще условное форматирование.

Мне не просто таблицу нужно в эксель выгрузить.


Oleg_SQL
Focha, как вариант - ХП запускает JOB, в котором на PowerShell заполняется все как нужно и сохраняется куда угодно (с доступом конечно же)

Как вы предлагете формировать отчет с помощью PowerShell?


aleks222

Зачем эти сложные телодвижения?
Мухи отдельно - котлеты отдельно.
1. Считаем на сервере.
2. Показываем в экселе.
3. VBA идет лесом.
ЗЫ. Те, "сложные" формулы, которые продемонстрировал ТС - вполне по плечу серверу. Он сложнее может.

Нужно по сути пользователю инструмент в котором он может внося различные данные, формулы ему показывают новые цифры.

Oleg_SQL
aleks222,форматирование тоже на сервере формировать?

Да, думаю SSRS использует подход типа шаблона

aleks222

Форматирование, заданное в экселе - сохраняется при обновлении данных.
Если только там не форматирование сумашедшего.

Сумащедшее: условное форматирование, группировка, промежуточные итоги, линии и т.п., а так же сводная таблица


Прикрепил пример отчета, оранжевый это столбцы с формулами
...
Рейтинг: 0 / 0
06.09.2021, 13:41
    #40095474
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Вот пример одной формулы
...
Рейтинг: 0 / 0
06.09.2021, 14:09
    #40095480
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha
Мне нужно сформировать статичный отчет, то есть вставить данные и формулы, пользователь в дополнительном столбе указывает значения и происходит дополнительный расчет
Форматирование не только отчета, но еще условное форматирование.

Мне не просто таблицу нужно в эксель выгрузить.

Как вы предлагете формировать отчет с помощью PowerShell?




Не ясен вопрос. Пишите код и формируете. В сети множество примеров.
И не обязательно на нём, можно на том же C# и тп (если есть на чем скомпилировать)
...
Рейтинг: 0 / 0
06.09.2021, 15:33
    #40095509
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Oleg_SQL
Focha
Мне нужно сформировать статичный отчет, то есть вставить данные и формулы, пользователь в дополнительном столбе указывает значения и происходит дополнительный расчет
Форматирование не только отчета, но еще условное форматирование.

Мне не просто таблицу нужно в эксель выгрузить.

Как вы предлагете формировать отчет с помощью PowerShell?




Не ясен вопрос. Пишите код и формируете. В сети множество примеров.
И не обязательно на нём, можно на том же C# и тп (если есть на чем скомпилировать)

Вот походу мне это подходит Как из MSSQL создать Excel-файл?
...
Рейтинг: 0 / 0
06.09.2021, 16:08
    #40095524
Oleg_SQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha,

xml? Думаете это будет проще и читабельнее ?
...
Рейтинг: 0 / 0
06.09.2021, 17:24
    #40095557
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha
Мне нужно сформировать статичный отчет, то есть вставить данные и формулы, пользователь в дополнительном столбе указывает значения и происходит дополнительный расчет
Форматирование не только отчета, но еще условное форматирование.

Мне не просто таблицу нужно в эксель выгрузить.




Считай на здоровье. Кто тебе мешает?

Данные, загруженные в эксель, никак не влияют на фсе прочие формулы.
Формулы продолжают считать.
Другое дело, что ты не умеешь.
Но это твоя проблема.
...
Рейтинг: 0 / 0
06.09.2021, 19:18
    #40095579
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
aleks222
Focha
Мне нужно сформировать статичный отчет, то есть вставить данные и формулы, пользователь в дополнительном столбе указывает значения и происходит дополнительный расчет
Форматирование не только отчета, но еще условное форматирование.

Мне не просто таблицу нужно в эксель выгрузить.




Считай на здоровье. Кто тебе мешает?

Данные, загруженные в эксель, никак не влияют на фсе прочие формулы.
Формулы продолжают считать.
Другое дело, что ты не умеешь.
Но это твоя проблема.

Вы можете дать совет или не давать такие ответы
...
Рейтинг: 0 / 0
06.09.2021, 19:19
    #40095580
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Oleg_SQL
Focha,

xml? Думаете это будет проще и читабельнее ?

Нет, но пока это самый я думаю хороший вариант
...
Рейтинг: 0 / 0
06.09.2021, 19:33
    #40095582
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha
aleks222
пропущено...


Считай на здоровье. Кто тебе мешает?

Данные, загруженные в эксель, никак не влияют на фсе прочие формулы.
Формулы продолжают считать.
Другое дело, что ты не умеешь.
Но это твоя проблема.

Вы можете дать совет или не давать такие ответы

Может за тебя еще и сделать?
Ты хоть умеешь получить данные сервера в экселе БЕЗ vba?
То же самое, но с передачей параметров на сервер?
Учись.
А не фантазируй. Сложный отчет - это признак скудоумия.
...
Рейтинг: 0 / 0
06.09.2021, 22:06
    #40095603
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha,

прислушайтесь к aleks222 - он совершенно прав, за исключением последнего пункта - VBA таки пригодится.

Если подробней, то:
Сначала избавляемся от ВПР-ов и формул в книге Excel. Для этого используемые в ВПР таблицы из Excel переезжают на сервер, а Вы занимаетесь анализом формул во всех-всех-всех столбцах отчёта, включая скрытые и свёрнутые.
Затем пишете на сервере функцию из нескольких сотен строк, так как число столбцов отчёта превышает несколько десятков, с необходимыми параметрами, которая бы генерировала и рассчитывала все эти столбцы.
Затем открываем книгу с отчётом, переходим в редактор VBA, и пишем процедуру, которая будет выполнять на сервере функцию и выгружать полученные данные на заранее отформатированный лист отчёта с необходимыми заголовками, разметками, условным форматированием и прочей красотой. Параметры для процедуры, которые она будет передавать функции, можно хранить на отдельном листе.
Также в процедуре надо предусмотреть код для новой группировки строк, если она может меняться со временем.
А если в отчёте есть расчёт итогов по неделям / месяцам / годам / объектам, то это также можно засунуть в функцию - я же писал, что её суть - избавить лист Excel от ВПР-ов и функций?
В общем, от двух дней (крайне оптимистично) до пары недель точно придётся потратить.

P.S. Коллеги, я в курсе про PowerQuery, но если нужно будет передавать каждый раз в функцию новые параметры, то всё равно процедура, которая будет менять настройки соединения, будет нужна.

P.P.S. про всякие нюансы типа "в прошлом месяце в этом столбце вспомогательной таблицы были такие значение, а в этом должны быть вот такие, но терять старые значение нельзя - а вдруг надо будет переделать отчёт за прошлый месяц, но и плодить кучу копий одной и той же таблицы нельзя" молчу.
...
Рейтинг: 0 / 0
07.09.2021, 09:42
    #40095639
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
aleks222

Если подробней, то:
Сначала избавляемся от ВПР-ов и формул в книге Excel. Для этого используемые в ВПР таблицы из Excel переезжают на сервер, а Вы занимаетесь анализом формул во всех-всех-всех столбцах отчёта, включая скрытые и свёрнутые.
Затем пишете на сервере функцию из нескольких сотен строк, так как число столбцов отчёта превышает несколько десятков, с необходимыми параметрами, которая бы генерировала и рассчитывала все эти столбцы.
Затем открываем книгу с отчётом, переходим в редактор VBA, и пишем процедуру, которая будет выполнять на сервере функцию и выгружать полученные данные на заранее отформатированный лист отчёта с необходимыми заголовками, разметками, условным форматированием и прочей красотой. Параметры для процедуры, которые она будет передавать функции, можно хранить на отдельном листе.
Также в процедуре надо предусмотреть код для новой группировки строк, если она может меняться со временем.
А если в отчёте есть расчёт итогов по неделям / месяцам / годам / объектам, то это также можно засунуть в функцию - я же писал, что её суть - избавить лист Excel от ВПР-ов и функций?
В общем, от двух дней (крайне оптимистично) до пары недель точно придётся потратить.

Из вашего варианта я правильно понял, что сама структура отчета будет в виде функций?


aleks222

P.S. Коллеги, я в курсе про PowerQuery, но если нужно будет передавать каждый раз в функцию новые параметры, то всё равно процедура, которая будет менять настройки соединения, будет нужна.

мне неподходит, так как связь с сервером должна отсутствовать


aleks222

P.P.S. про всякие нюансы типа "в прошлом месяце в этом столбце вспомогательной таблицы были такие значение, а в этом должны быть вот такие, но терять старые значение нельзя - а вдруг надо будет переделать отчёт за прошлый месяц, но и плодить кучу копий одной и той же таблицы нельзя" молчу.

это вообще не рассматривается
...
Рейтинг: 0 / 0
07.09.2021, 09:45
    #40095640
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
aleks222
Focha
пропущено...

Вы можете дать совет или не давать такие ответы

Может за тебя еще и сделать?
Ты хоть умеешь получить данные сервера в экселе БЕЗ vba?
То же самое, но с передачей параметров на сервер?
Учись.
А не фантазируй. Сложный отчет - это признак скудоумия.

Ты че такой злой?
Убедительная просьба не отвечать больше в этой теме, так как советов вы не даете
Возможно вы завидуете, что я разрабатываю крутой инструмент для аналитиков, а вы не можете даже формулу прописать в экселе, больше я не вижу причин вашего поведения.
...
Рейтинг: 0 / 0
07.09.2021, 12:25
    #40095695
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha
aleks222

Если подробней, то:
Сначала избавляемся от ВПР-ов и формул в книге Excel. Для этого используемые в ВПР таблицы из Excel переезжают на сервер, а Вы занимаетесь анализом формул во всех-всех-всех столбцах отчёта, включая скрытые и свёрнутые.
Затем пишете на сервере функцию из нескольких сотен строк, так как число столбцов отчёта превышает несколько десятков, с необходимыми параметрами, которая бы генерировала и рассчитывала все эти столбцы.
Затем открываем книгу с отчётом, переходим в редактор VBA, и пишем процедуру, которая будет выполнять на сервере функцию и выгружать полученные данные на заранее отформатированный лист отчёта с необходимыми заголовками, разметками, условным форматированием и прочей красотой. Параметры для процедуры, которые она будет передавать функции, можно хранить на отдельном листе.
Также в процедуре надо предусмотреть код для новой группировки строк, если она может меняться со временем.
А если в отчёте есть расчёт итогов по неделям / месяцам / годам / объектам, то это также можно засунуть в функцию - я же писал, что её суть - избавить лист Excel от ВПР-ов и функций?
В общем, от двух дней (крайне оптимистично) до пары недель точно придётся потратить.

Из вашего варианта я правильно понял, что сама структура отчета будет в виде функций?


aleks222

P.S. Коллеги, я в курсе про PowerQuery, но если нужно будет передавать каждый раз в функцию новые параметры, то всё равно процедура, которая будет менять настройки соединения, будет нужна.

мне неподходит, так как связь с сервером должна отсутствовать


aleks222

P.P.S. про всякие нюансы типа "в прошлом месяце в этом столбце вспомогательной таблицы были такие значение, а в этом должны быть вот такие, но терять старые значение нельзя - а вдруг надо будет переделать отчёт за прошлый месяц, но и плодить кучу копий одной и той же таблицы нельзя" молчу.

это вообще не рассматривается


Даже цитировать не умеешь.
...
Рейтинг: 0 / 0
07.09.2021, 12:26
    #40095696
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha
aleks222
пропущено...

Может за тебя еще и сделать?
Ты хоть умеешь получить данные сервера в экселе БЕЗ vba?
То же самое, но с передачей параметров на сервер?
Учись.
А не фантазируй. Сложный отчет - это признак скудоумия.

Ты че такой злой?
Убедительная просьба не отвечать больше в этой теме, так как советов вы не даете
Возможно вы завидуете, что я разрабатываю крутой инструмент для аналитиков, а вы не можете даже формулу прописать в экселе, больше я не вижу причин вашего поведения.


В темах отвечают не только для тредстартеров. Есть еще и другие. Вменяемые.
...
Рейтинг: 0 / 0
07.09.2021, 12:49
    #40095707
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
aleks222

Даже цитировать не умеешь.

Ты за своими ошибками следи, явно у тебя проблемы и че ты пристал?

aleks222

В темах отвечают не только для тредстартеров. Есть еще и другие. Вменяемые.

Вот к чему этот ответ?

Помоги найти решение и не пиши еренду
...
Рейтинг: 0 / 0
07.09.2021, 14:48
    #40095751
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha
aleks222

Даже цитировать не умеешь.

Ты за своими ошибками следи, явно у тебя проблемы и че ты пристал?



Не бухти.
Приписывать мне не принадлежащие мне высказывания - некорректно.
...
Рейтинг: 0 / 0
07.09.2021, 15:46
    #40095771
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha,

вам нужен C# для приложений Office. Можно оформить процедурой CLR, но лучше отдельным приложением, например, веб-сервисом + веб интерфейс.
...
Рейтинг: 0 / 0
07.09.2021, 16:00
    #40095775
DaniilSeryi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать Эксель на сервере и выложить в папку
Focha

Из вашего варианта я правильно понял, что сама структура отчета будет в виде функций?


Да. В файле Excel на листе с отчётом вводите в выбранные ячейки значения параметров и нажимаете кнопку. И получаете под строкой-заголовком отчёта новые данные. И никаких пересчётов данных при каждом новом открытии книги. Ну или если есть необходимость или желание что-то по-прежнему привязывать либо рассчитывать в книге, то часть столбцов грузите из функции на сервере, а часть пускай считается на листе.
Если не хотите давать в руки пользователей доступ к серверу - создаёте отдельный лист с параметрами и кнопкой. В окне редактора VBA этот лист помечаете как Very Hidden, на проект VBA ставите пароль, и никто из простых пользователей этот лист отобразить не сможет. Кнопку нажали, данные обновили, лист Very Hidden поставили, книгу сохранили, и готово.

Focha

мне неподходит, так как связь с сервером должна отсутствовать


Не хотите PowerQuery - не надо, просто в процедуре VBA кода будет больше.


Focha

это вообще не рассматривается


Рано или поздно с этим придётся столкнуться, когда выяснится, что в этом месяце в справочнике исправили часть строк, а надо выгрузить отчёт за прошлый месяц заново со старыми значениями справочника. Вот если справочники оставить внутри книги Excel, и выгружать только часть столбцов отчёта, тогда это не проблема, да.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сформировать Эксель на сервере и выложить в папку / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]