Как создать файл Excel с помощью хранимой процедурыExcel

Ответить
Гость
 Как создать файл Excel с помощью хранимой процедуры

Сообщение Гость »


У меня есть приложение Blazor и база данных SQL Server. В приложении я хочу нажать кнопку и хочу, чтобы файл Excel был сгенерирован и загружен на компьютер клиента со всеми данными из таблицы, позволяющей называть «Пользователи». Другие потоки, кажется, используют программы, которыми я не являюсь (например, SSIS/Мастер экспорта) или предполагают, что я очень хорошо осведомлен, хотя я делаю это впервые. Лучшая тема, которую я нашел, была такая: https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926

создать процедуру spUsers_generate_excel_with_columns ( @db_name varchar(100), @table_name varchar(100), @имя_файла varchar(100) ) как --Сгенерировать имена столбцов как набор записей объявить @columns varchar(20), @sql varchar(8000), @data_file varchar(100) выбирать @columns = coinesce(@columns + ',', '') + имя_столбца+' as ' + имя_столбца от информация_схема.столбцы где имя_таблицы = @имя_таблицы select @columns = '''''' + replace(replace(@columns, ' as ', ''''' as '), ',', ',''''') --Создать фиктивный файл для хранения реальных данных select @data_file = substring(@file_name, 1, len(@file_name) - charindex('\',verse(@file_name))) + '\data_file.xls' --Сгенерировать имена столбцов в переданном файле EXCEL set @sql='exec master..xp_cmdshell ''bcp " select * from (select '+@columns+') as t" queryout "'+@file_name+'" -c''' исполнитель(@sql) --Создаем данные в фиктивном файле set @sql='exec master..xp_cmdshell ''bcp "select * from '+@db_name+'..'+@table_name+'" queryout "'+@data_file+'" -c''' исполнитель(@sql) --Копировать фиктивный файл в переданный файл EXCEL set @sql= 'exec master..xp_cmdshell ''type '+@data_file+' >> "'+@file_name+'"''' исполнитель(@sql) --Удалить фиктивный файл set @sql= 'exec master..xp_cmdshell ''del '+@data_file+'''' исполнитель(@sql) Но ничего не объяснено, поэтому я не знаю, что мне нужно заменить.
Например, что означает @columns=coalesce(@columns+',','')+column_name+' как '+column_name .

Я раньше использовал SQL и знаю внутренние соединения и переменные, но это кажется мне чуждым. Я просто хочу, чтобы в этой процедуре все выполнялось.

Будем благодарны за любую помощь.

Обновление: кажется, лучший совет — создать файл CSV. И это можно загрузить на компьютер клиента?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Excel»