Перейти к содержимому

Как выгрузить таблицу из sql в excel

  • автор:

Export Data to Excel from Master Data Services

В надстройке Master Data Services для Excel необходимо экспортировать данные из репозитория MDS, чтобы работать с ним.

Если вы хотите отфильтровать набор данных перед загрузкой, ознакомьтесь с разделом «Фильтрация данных перед экспортом» (надстройка MDS для Excel).

Предварительные условия

Для выполнения этой процедуры:

  • Необходимо иметь разрешение на доступ к функциональной области Обозреватель .

Экспорт данных из MDS в Excel

  1. Откройте Excel и на вкладке Основные данные установите соединение с репозиторием MDS. Дополнительные сведения см. в разделе «Подключение к репозиторию MDS» (надстройка MDS для Excel).
  2. На панели Обозреватель основных данных выберите модель и версию. Заполняется список сущностей.
    • Если панель Обозреватель основных данных не видна, в группе Соединение и загрузка нажмите Показать обозреватель.
    • Если панель Обозреватель основных данных отключена, то причина этого заключается в том, что существующий лист уже содержит данные, управляемые MDS. Чтобы включить эту панель, откройте новый лист.
  3. В области Обозреватель основных данных в списке сущностей дважды щелкните сущность, которую нужно загрузить.
  • В Excel загружается только первый миллион элементов. Чтобы отфильтровать список перед загрузкой, на ленте в группе Подключение и загрузка нажмите кнопку Фильтр.
  • В столбцах, которые являются ограниченными списками (атрибутами на основе домена), по умолчанию загружаются только первые 25 000 значений. Это число можно изменить в свойстве MaximumDbaEntitySize в файле excelusersettings.config, расположенном на компьютере, на котором установлена программа Excel. Этот файл находится в папке C:\Users\\AppData\Local\Microsoft\SQL Server\130\MasterDataServices\. Если количество значений для атрибута на основе домена превышает настройку свойства MaximumDbEntitySize, список значений не загружается.

Если при загрузке разделенных текстом данных с помощью надстройки для Microsoft Excel в 32-разрядную версию Excel свойствам Число ячеек для загрузки и Число ячеек для публикации присвоено максимальное значение 1000, возникнет ошибка нехватки памяти. Для использования максимальных значений свойств Число ячеек для загрузки и Число ячеек для публикациинеобходимо использовать 64-разрядную версию Excel.

Как из ms sql экспортировать данные в excel?

Есть ms sql server 2012 и есть excel 2007 надо экспортировать данные в excel. стандартное средство импорта экспорта данных не дает выбрать на втором шаге excel. только базы данных.
Нашел на msdn видео как через visual studio это сделать. но там он старый а сейчас только 2012 есть. все прошел по шагам, затык на последнем моменте. имена столбцов в excel прописывает а дальше не хочет.

  • Вопрос задан более трёх лет назад
  • 12152 просмотра

1 комментарий

Оценить 1 комментарий

Не знаете, как выгрузить данные из SQL в Excel для отчета?

Не знаете, как выгрузить данные из SQL в Excel для отчета?

Итак, перед нами поставлена задача сделать автоматизированный отчет на основании данных сервера SQL . Есть несколько способов решения данной задачи: вы можете использовать Microsoft Office Access, но мы п ойдем простым путем и сделаем этот отчет в Microsoft Office Excel. ВНИМАНИЕ: для создания данного отчета Вам необходимо проверить настройки (Источники данных (ODBC) в п анели управления. В разделе системный DNS добавьте коннектор, который будет смотреть на Ваш сервер SQL . Также проверьте, что для Ваш ей учетн ой записи доступны те вьюхи и те таблицы которые вам нужны для отчета. После настройки ODBC мы откр ываем Microsoft Office Excel.

На листе 2 пишем период отчета.

s26011.jpg

Переходим на страницу куда будут выгружаться данны е. Я переименовал страницу «Лист1» в «Запрос». Теперь необходимо сделать связку на наш SQL сервер «Действие >Импорт внешних данных > Создать запрос»

s77828.jpg

В данном окне Вам необходимо вбить логин и пароль на доступ к SQL серверу. Который Вам должен предоставить администратор SQL сервера.

68043.jpg

В водим пароль и логин.

Далее вываливается список доступных таблиц и вьюх по данному логину.

50380.jpg

Жмем отмена.
В диалоговом окне « Microsoft Query »

61594.jpg

Выбираем вьюху или таблицу из которой вам нужно выгружать данные.

30015.jpg

Видим такую картинку

s50059.jpg

Нажать на эту кнопку.

98880.jpg

Выбираем поле дата_создания и в значении пишем

Внимание: Если у Вас для выгрузки используется другое поле, не ДАТА_СОЗДАНИЯ, как у меня, то Вам нужно указать ключ по которому Вы будете выгружать данные из базы.(Можно без ключа, только не забывайте про ограничения Exl )

s50653.jpg

Теперь сохраняем запрос.

s52979.jpg

s92678.jpg

Дважды щелкнуть на * (Левой кнопкой мыши)

46574.jpg

Указать начало периода.

59932.jpg

Указать окончание периода.

62636.jpg

Получили данные, теперь их нужно загрузить в эксель.

Нажмите «Файл» «Вернуть данные в Microsoft Office Excel»

s88653.jpg

Указали строчку с которой начнутся выгружаться данные.
На листе «Запрос»

s42986.jpg

Нажимаем на Параметры

s08147.jpg

Видим картинку параметров.

20604.jpg

Выбираем нижнее значение и указываем поле, в котором будет указанна дата начала периода.

То, что указанно на Листе 2

77750.jpg

21.JPG

Теперь выбираем окончание периода. Тоже самое только на строчку ниже.

22.JPG

23.JPG

24.JPG

Жмем ок

Теперь сохраняем файл.
Переименовываем страницу.

25.JPG
26.JPG

Ну а дальше дело техники.

27.JPG

Теперь для обновления отчета Вам понадобится только сменить интервал времени и обновить данные на листе «Запрос». Правой кнопкой на данные и выбрать пункт «Обновить запрос»

Мы получили данные с SQL в Microsoft Office Excel. Для анализа данных используете связанные таблицы, или Вы можете написать свои VB скрипты.

Выгрузка данных из SQL в Excel

Microsoft Office Excel явялется очень удобным средством для работы с табличными данными, построением отчетов и т.д. Разрботчики языка C# предусмотрели возможность для работы и с Excel. У разработчиков есть возможность выгружать данные напрямую в документ, создавать сводные отчеты, диагарммы, в общем делать всё, что можно делать напрямую в документе Excel. В этой статье, мы будем выгружать из базы данных SQL данные в документ Excel.

При написании статьи использовался Microsoft Office 2003. Но думаю, что для других версий этот код будет тоже работать.

Чтобы иметь возможность работать с Excel нем необходимо подключить ссылку на библиотеку Microsoft Excel Object Library. Вызвав конткстное меню на Reference выбираем Add Reference (рис. 1). В появившемся окне выбираем Microsoft.Office.Interop.Excel.

Рис. 1 Добавить ссылку

Рис. 2 Add Reference Необходимые подготовительные действия мы выполнили, теперь займемся программированием. Для начала подключим необходимое простанство имен:

Для работы с SQL

using System.Data.SqlClient;

для удобной работы с Excel создадим псевдоним для простанства имен:

using Excel = Microsoft.Office.Interop.Excel;

Сначала займемся методом, который будет выгружать данные из SQL в DataTable:

private DataTable GetData() < //строка соединения string connString = @"Data Source=DEVELOPER;Initial Catalog=Northwind;Integrated Security=SSPI; Connection Timeout=260"; SqlConnection con = new SqlConnection(connString); DataTable dt = new DataTable(); try < string query = @"SELECT Customers.CompanyName, Customers.ContactName, Orders.ShipVia, Orders.Freight, Orders.ShipName, Orders.ShipAddress, Orders.ShipCity, Orders.ShipRegion, Orders.ShipPostalCode, Orders.ShipCountry FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID"; SqlCommand comm = new SqlCommand(query, con); con.Open(); SqlDataAdapter da = new SqlDataAdapter(comm); DataSet ds = new DataSet(); da.Fill(ds); dt = ds.Tables[0]; >catch(Exception ex) < MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); >finally < con.Close(); con.Dispose(); >return dt; >

У нас есть данные, теперь необходимо загрузить их в ексель. Делается это очень просто, простым перебором строк и колонок DataTable:

private void button1_Click(object sender, EventArgs e) < xlApp = new Excel.Application(); try < //добавляем книгу xlApp.Workbooks.Add(Type.Missing); //делаем временно неактивным документ xlApp.Interactive = false; xlApp.EnableEvents = false; //выбираем лист на котором будем работать (Лист 1) xlSheet = (Excel.Worksheet)xlApp.Sheets[1]; //Название листа xlSheet.Name = "Данные"; //Выгрузка данных DataTable dt = GetData(); int collInd = 0; int rowInd = 0; string data = ""; //называем колонки for (int i = 0; i < dt.Columns.Count; i++) < data = dt.Columns[i].ColumnName.ToString(); xlSheet.Cells[1, i + 1] = data; //выделяем первую строку xlSheetRange = xlSheet.get_Range("A1:Z1", Type.Missing); //делаем полужирный текст и перенос слов xlSheetRange.WrapText = true; xlSheetRange.Font.Bold = true; >//заполняем строки for (rowInd = 0; rowInd < dt.Rows.Count; rowInd++) < for (collInd = 0; collInd < dt.Columns.Count; collInd++) < data = dt.Rows[rowInd].ItemArray[collInd].ToString(); xlSheet.Cells[rowInd + 2, collInd + 1] = data; >> //выбираем всю область данных xlSheetRange = xlSheet.UsedRange; //выравниваем строки и колонки по их содержимому xlSheetRange.Columns.AutoFit(); xlSheetRange.Rows.AutoFit(); > catch (Exception ex) < MessageBox.Show(ex.ToString()); >finally < //Показываем ексель xlApp.Visible = true; xlApp.Interactive = true; xlApp.ScreenUpdating = true; xlApp.UserControl = true; //Отсоединяемся от Excel releaseObject(xlSheetRange); releaseObject(xlSheet); releaseObject(xlApp); >>

Освобождаем ресурсы и отсоединяемся от ексель:

//Освобождаем ресуры (закрываем Excel) void releaseObject(object obj) < try < System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; >catch (Exception ex) < obj = null; MessageBox.Show(ex.ToString(), "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Information); >finally < GC.Collect(); >>

В результате, после завершения работы программы, будет открыт документ Excel с данными, которые мы хотели выгрузить.

  • February 2014 (1)
  • January 2014 (1)
  • March 2013 (2)
  • February 2013 (2)
  • November 2012 (1)
  • October 2012 (2)
  • July 2012 (3)
  • May 2012 (2)
  • January 2012 (4)
  • December 2011 (3)
  • November 2011 (14)
  • October 2011 (1)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *