Introduction
In this article, I am going to explain to you how to import Excel sheet data to SQL server database table with examples. Here we will be using SQL Server 2019 or you can use SQL Server 2008 or above. In my current project, I am using this concept for data migration.
This concept is used for transferring data from source (Excel sheet) to destination (SQL Server). We can import a bulk amount of excel data into SQL database without using any coding.
There are two ways to import data from excel to SQL Server database. First, if you want to import all excel file data with header names in a new table. Secondly, if you want to append excel data in exiting table data without header names.
Prerequisites
SQL Server 2019 or you can use SQL server 2008 or above version.
Read my previous articles, using the below links,
- How To Install SQL Server 2019
- How To Install SQL Server Management Studio 2019
- Getting Started With SQL Server 2019
Import All Excel Data With Header Names In a New Table
Step 1
Here, I have created a sample Excel data that contains employees detail data with six columns.
Step 2
Connect To SQL Server Management Studio 2019 (SSMS) and create a database
Open your SQL Server and use the following script to create the “chittadb” Database.
Create database chittadb
Now, select the script query then press F5 or click on Execute button to execute the above script.
You should see a message, “Command(s) completed successfully.” Means your new database is created.
Database “Chittadb” created.
Step 3
Expand the database where you want to import the data. Here I want to import the data to “Chittadb” database. The database has no table now.
Right click your destination database ->Select Tasks -> Import Data
Step 4
An Import wizard pop up will open «Welcome to SQL Server Import and Export Wizard” and Click Next.
Step 5
- Now, Select Microsoft Excel as your data source from the dropdown list.
- Click the ‘Browse’ button to select the path to the Excel data file you want to import.
- Select the version of the excel file (2007-2010). Is usually fine for files with a .XLS extension, or use newer files with a .XLSX extension)
- Tick the ‘First Row has column names’ checkbox, if your excel file contains headers.
- Click next.
Step 6
On the ‘Choose a Destination’ Screen, select destination database” SQL Server Native Client 11.0” from the dropdown, select database “chittadb”, also you can use Windows Authentication or Use SQL Server Authentication; here I am using Windows Authentication and click Next.
Step 7
Select the Radio button “Copy data from one or more tables or views”.
This step will copy the data from the data source, click next and continue.
Step 8
We can specify the table name in the following wizard. So change the destination section name «[dbo].[Sheet1$]» as «[dbo].[Tbl_Employee]» and click Next.
If you want to preview your data, Click the preview button.
Step 9
Save and Run package. Check Run immediately from checkbox and Click Next or Finish button you can get Complete the Wizard page.
Step 10
Click finish.
Step 11
The execution was successful and Click Close button.
Step 12
Now, check database “Chittadb” and verify.
The following Output contains Id, EmpId, Name, Location, Gender and Designation as the column name and “Tbl_Employee” table also created under database “Chittadb”. Now all excel data is imported to “Tbl_Employee” table.
Conclusion
In this article, we learned how to Import Excel data into SQL Server 2019. Post your valuable feedback in the comments section. I hope this article will be useful.
Бывают ситуации, когда на рабочей станции отсутствуют такие средства взаимодействия с БД как: MS SQL Server Management Studio, Aquafold Aqua Data Studio, DBeaver и т.п., а вероятность их установки в краткосрочной перспективе близка к нолю. В то же время, присутствует острая необходимость подключения к этой самой БД и работы с данными. Как оказалось, на помощь может прийти старый добрый MS Excel.
В моем случае требовалось подключиться к MS SQL Server, однако, MS Excel умеет устанавливать соединение не только с ним, но и с большинством современных БД: MySQL, PostgreeSQL, IBM DB2 и даже Oracle и Teradata, а также с файлами данных CSV, XML, JSON, XLS(X), MDB и другими.
Теперь немного о действиях, совершенных мной с целью подключения к базе:
В новой книге на ленте выбираем «(1) Данные» -> «(2) Получение внешних данных» -> «(3) Из других источников» -> «(4) С сервера SQL Server».
Далее, в окне Мастера подключения к данным, заполняем «(1) Имя сервера» -> «(2) Учетные сведения»[ -> «(3) Имя пользователя» и «Пароль»]. Таким образом, мы сообщаем MS Excel, с каким сервером мы хотим установить соединение и какой метод аутентификации хотим использовать. Я использовал «проверку подлинности Windows», но возможно также указать учетные данные отличные от установленных в Windows.
Выбираем целевую «(1) Базу данных» -> «(2)(3) Определенную таблицу» или «Несколько таблиц» или же базу в целом (тогда оба «чекбокса» оставляем пустыми).
После всех проделанных манипуляций, Мастер подключения предложит сохранить файл подключения. Потребуется задать «(1) Имя файла». Желательно также указать «(2) Описание» и «(3) Понятное имя файла», чтобы спустя время было понятно какой файл подключения к какой базе или таблице обращается.
Теперь выбрать созданное подключение можно будет следующим образом: «(1) Данные» -> «(2) Получение внешних данных» -> «(3) Существующие подключения».
Открыв только что созданное подключение, в случае если вы соединялись с базой в целом, MS Excel опять предложит выбрать одну или несколько конкретных таблиц:
Определив таблицы, MS Excel предложит выбрать «(1) Способ представления данных» и «(2) Куда следует поместить данные». Для простоты я выбрал табличное представление и размещение на уже имеющемся листе, чтобы не плодить новые. Далее следует нажать на «(3) Свойства».
В свойствах подключения, нужно перейти на вкладку «(1) Определение». Здесь можно выбрать «(2) Тип команды». Даже если требуется выгружать лишь одну таблицу без каких-либо связей, настоятельно рекомендую выбрать SQL команду, чтобы иметь возможность ограничить размер выгружаемой таблицы (например, с помощью TOP(n)). Так, если вы попытаетесь выгрузить целиком таблицу базы, это может привести в лучшем случае к замедлению работы MS Excel, а в худшем к падению программы, к тому же – это необоснованная нагрузка на сам сервер базы данных и на сеть. После того как «(3) Текст команды» будет введен и нажата кнопка «ОК», MS Excel предложит сохранить изменения запроса – отвечаем положительно.
В итоге получаем данные прямо из базы, что и требовалось.
Теперь наше подключение будет находиться в книге и доступно в меню «(1) Данные» -> «(2) Подключения».
Как видно из кнопок формы, здесь мы можем:
«(1) Добавить» в книгу новое подключение из уже существующих;
«(2) Удалить» подключение из книги;
Отредактировать «(3) Свойства» подключения;
«(4) Обновить» данные, предоставляемые подключением.
Подытоживая весь вышеописанный опыт, хочется сказать, что конечно же по функционалу и кругу решаемых задач MS Excel не сравнится с такими системами как MS SQL Server Management Studio, Oracle SQL Developer и подобными. Но, в условиях ограниченного времени и доступных инструментов, при необходимости быстро получить доступ к данным из базы, MS Excel вполне справляется.
Мало пользователей, да и начинающих программистов, которые знают о возможности Excel подключаться к внешним источникам, и в частности к SQL серверу, для загрузки данных из этих источников. Эта возможность достаточно полезна, поэтому сегодня мы займемся ее рассмотрением.
Функционал Excel получения данных из внешних источников значительно упростит выгрузку данных с SQL сервера, так как Вам не придется просить об этом программиста, к тому же данные попадают сразу в Excel. Для этого достаточно один раз настроить подключение и в случае необходимости получать данные в Excel из любых таблиц и представлений Views, из базы настроенной в источнике, естественно таких источников может быть много, например, если у Вас несколько баз данных.
И для того чтобы более понятно рассмотреть данную возможность, мы это будем делать как обычно на примере. Другими словами допустим, что нам надо выгрузить данные, одной таблицы, из базы SQL сервера, средствами Excel, т.е. без помощи вспомогательных инструментов, таких как Management Studio SQL сервера.
Примечание! Все действия мы будем делать, используя Excel 2010. SQL сервер у нас будет MS Sql 2008.
И для начала разберем исходные данные, допустим, есть база test, а в ней таблица test_table, данные которой нам нужно получить, для примера будут следующими:
Эти данные располагаются в таблице test_table базы test, их я получил с помощью простого SQL запроса select, который я выполнил в окне запросов Management Studio. И если Вы программист SQL сервера, то Вы можете выгрузить эти данные в Excel путем простого копирования (данные не большие), или используя средство импорта и экспорта MS Sql 2008. Но сейчас речь идет о том, чтобы простые пользователи могли выгружать эти данные.
Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.
Настройка Excel для получения данных с SQL сервера
Настройка, делается достаточно просто, но требует определенных навыков и консультации администратора SQL сервера. Вы, конечно, можете попросить программиста настроить Excel на работу или сделать это сами, просто спросив пару пунктов, а каких мы сейчас узнаем.
И первое что нам нужно сделать, это конечно открыть Excel 2010. Затем перейти на вкладку «Данные» и нажать на кнопку «Из других источников» и выбрать «С сервера SQL Server»
Затем у Вас откроется окно «Мастер подключения данных» в котором Вам необходимо, указать на каком сервере располагается база данных и вариант проверки подлинности. Вот именно это Вам придется узнать у администратора баз данных, а если Вы и есть администратор, то заполняйте поля и жмите «Далее».
Где,
- Имя сервера – это адрес Вашего сервера, здесь можно указывать как ip адрес так и DNS имя, в моем случае сервер расположен на этом же компьютере поэтому я и указал localhost;
- Учетные данные – т.е. это логин и пароль подключения к серверу, здесь возможно два варианта, первый это когда в сети Вашей организации развернута Active directory (Служба каталогов или домен), то в этом случае можно указать, что использовать те данные, под которыми Вы загрузили компьютер, т.е. доступы доменной учетки, и в этом случае никаких паролей здесь вводить не надо, единственное замечание что и на MSSql сервере должна стоять такая настройка по проверки подлинности. У меня именно так и настроено, поэтому я и выбрал этот пункт. А второй вариант, это когда администратор сам заводит учетные данные на SQL сервере и выдает их Вам, и в этом случае он должен их Вам предоставить.
Далее необходимо выбрать базу, к которой подключаться, в нашем примере это база test. Также это подключение можно настроить сразу на работу с определенной таблицей или представлением, список таблиц и представлений у Вас будет отображен, давайте мы сделаем именно так и настроем подключение сразу на нашу таблицу test_table. Если Вы не хотите этого, а хотите чтобы Вы подключались к базе и потом выбирали нужную таблицу, то не ставьте галочку напротив пункта «Подключаться к определенной таблице», а как я уже сказал, мы поставим эту галочку и жмем «Далее».
В следующем окне нам предложат задать имя файла подключения, название и описание, я например, написал вот так:
После того как Вы нажмете «Готово» у Вас откроется окно импорта этих данных, где можно указать в какие ячейки копировать данные, я например, по стандарту выгружу данные, начиная с первой ячейки, и жмем «ОК»:
В итоге у меня загрузятся из базы вот такие данные:
Т.е. в точности как в базе. Теперь когда, например, изменились данные в этой таблице, и Вы хотите выгрузить их повторно Вам не нужно повторять все заново, достаточно в excel перейти на вкладку «Данные» нажать кнопку «Существующие подключения» и выбрать соответствующее, т.е. то которое Вы только что создали.
Вот собственно и все, как мне кажется все достаточно просто.
Таким способом получать данные в Excel из базы SQL сервера очень удобно и главное быстро, надеюсь, Вам пригодятся эти знания полученные в сегодняшнем уроке. Удачи!
К концу этой статьи вы будете знать, как просто подключить базу данных SQL Server к вашей надежной среде Microsoft Excel. Все, что вам нужно для поддержки этой интеграции, — это устройство, на котором может работать Microsoft Excel, сам Microsoft Excel и база данных SQL Server для подключения. Просто, правда?
Многие компании предпочитают использовать Microsoft Excel в качестве собственной базы данных клиентов, и хотя это может быть достаточно эффективным для компаний на ранних стадиях, в конечном итоге требуется более эффективный способ обработки данных, чтобы соответствовать росту операций, который происходит естественным образом по мере расширения бизнеса. Microsoft SQL Server — это реляционная система управления базами данных, которая служит хорошим инструментом для перехода от классической базы данных таблиц Excel к более эффективной и менее трудоемкой базе данных. Однако если вы ищете постоянное, прямое и надежное соединение между Excel и SQL, этого, вероятно, будет недостаточно, но об этом подробнее в конце учебника!
Давайте начнем!
Шаг 1 — Откройте рабочую книгу Excel, все должно быть просто.
Шаг 2 — Выберите вкладку «Данные».
Шаг 3 — Войдите в меню «Получить данные», выберите опцию «Из базы данных» и выберите «Из базы данных SQL Server».
Шаг 4 — Вы должны увидеть меню, показанное ниже. Здесь вы введете данные базы данных SQL, к которой хотите подключиться, т.е. адрес сервера и имя (необязательно). Как только вы закончите, нажмите «OK».
Шаг 5 — Появится меню. На боковой панели вам нужно выбрать меню «База данных», поскольку мы пытаемся подключиться к базе данных (логично, правда?). Как только вы окажетесь в меню «База данных», все, что вам нужно сделать, это ввести имя пользователя и пароль, которые вы установили для базы данных SQL Server. Что касается поля «Выберите, к какому уровню применить эти настройки», оно должно совпадать с адресом сервера для базы данных, к которой вы пытаетесь подключиться, который вы ввели во время настройки. Шаг 4. Когда вы закончите, нажмите «Connect».
Шаг 6 — Вы почти у цели! Для наших последний шагпоявится окно «Навигатор». Здесь вы увидите список таблиц, которые содержатся в вашей базе данных SQL Server. Для этой демонстрации мы выберем таблицу, содержащую информацию о фиктивных клиентах фиктивной компании. После того как вы выбрали таблицу, к которой хотите подключиться, вам остается только нажать кнопку «Загрузить».
И вуаля! Вы только что подключили Microsoft Excel к базе данных SQL Server.
Заключение
Мы надеемся, что это простое руководство помогло вам успешно подключить Excel к SQL, поскольку это послужит достойной заменой классической базе данных таблиц Excel, которая встречается во многих компаниях. Однако, как мы уже упоминали в начале статьи, если вы ищете более последовательный и эффективный способ подключения Excel к SQL, максимально используя его возможности, мы предлагаем вам взглянуть на Connect Bridge.
Connect Bridge — это наша мощная платформа интеграции программного обеспечения собственной разработки. По сути, она устраняет необходимость использования API программного обеспечения, используя вместо этого синтаксис SQL, и именно поэтому она так невероятно удобна! Еще в марте 2022 года мы написали статью для CRM Software Blog (которую вы можете прочитать на сайте здесь), в котором объясняется, как можно подключить Excel к SQL, Dynamics 365, SharePoint и многое другое с помощью нашей платформы. Не стесняйтесь прочитать или, если хотите, свяжитесь с нами напрямую! Мы будем рады помочь.
Загрузка из Excel в MS SQL Server (несколько способов)
Несколько примеров работы из MS SQL Server с таблицами формата Excel(.xls,.xlsx):
1)Сиспользованием функции OPENROWSET или с OPENDATASOURCE:
SELECT * FROM OPENROWSET(‘MSDASQL’,
‘Driver={Microsoft Excel Driver (*.xls)};
DBQ=[C:gr_otchet.xls]’, ‘SELECT * FROM [Sheet1$A8:D10000]’
Пример для OPENDATASOURCEиз BOL:
SELECT * FROM OPENDATASOURCE(‘Microsoft.Jet.OLEDB.4.0’,
‘DataSource=C:DataFolderDocumentsTestExcel.xls;Extended Properties=EXCEL 5.0’)…[Sheet1$] ;
Одна израспространенных проблем, это отсутствиедрайверов под х64 платформу, или установка х32 битных под х64 систему. Например,драйверов Microsoft.Jet.OleDB нет 64 битных,в этом случае можно использовать другие драйвера, к примеру Microsoft.ACE.OLEDB.12.0 .
Не забудьте только проПримечание из BOL:
ФункцияOPENROWSET или OPENDATASOURCE может быть использованадля доступа к удаленным данным из источников данных OLE DB только в том случае,если для заданного поставщика параметр реестра DisallowAdhocAccess явноустановлен в 0 и включен параметр Ad Hoc Distributed Queries расширеннойнастройки. Если эти параметры не установлены, поведение по умолчанию запрещаетнерегламентированный доступ.
Если параметрAd Hoc Distributed Queries выключен, то об будет информационное сообщение. Включениепараметра осуществляется через хранимую процедуру sp_configure.
sp_configure ‘Ad Hoc Distributed Queries’, 1;
RECONFIGURE;
GO
2) Второй спосб через Linkedserverи ODBC драйвер.
1-ый способхорошо, когда необходимо использовать разово, для частого и широкоиспользования лучше использовать технологию связанного сервера(Linked Server)
Для этогонеобходимо установить на сервере MS SQL Server ODBC драйвер а для Excel, затем создать источникданных( Администрирование ->Источники данных)
Указывает имя источника данных,версию Excel и самфайл.
Сохраняем источник.
После этого создаем связанныйсервер LinkedServed (связанныйсервер):
Указываем имя нашего связанного сервера и имя созданного намираннего ODBC источника.
Сохраняем.
Теперь можно выполнять запросы кнашему связанному серверу, к примеру:
select * from openquery(excel,‘select * from [sheet1$]’) – получение всех данныз из экселя
select * from openquery(excel,‘select * from[Sheet1$A10:D2]’) – получение данных диапозона $A10:D2
select * from openquery(excel,‘select * from[Sheet1$A10:D]’) – получение данных диапозона с A10:D доконца файла.
3) Еще одни,способ, когда необходим импорт разово, то можно использовать «SQL Server Import and Export Wizard»:
Выделяем БД, правая кнопка, Задачи, Выбираем пункт Импортили Экспорт:
Выбираем источник данных, нашфайл Excel, версию Excel-я. :
Выбираем кудакопировать данные, указываем таблицу назначение .
После этогоможно пакет запустить немедленно или его сохранить для дальнейшегоиспользования.
4) Кстати, 4 способ, это как раз создание пакета SSIS в Microsoft Visual Studio, результатом котороготак же будет пакет, похожий на то, что было создано в варианте 3
Делается онпросто
Выбирается Элемент потокауправления
Затем выбирается источник исервер назначения:
В источнике соединений создаетсяновое соединение с нашим файлом Excel,в Назначение указываем наш MS SQL Server, указываем таблицу,сопоставляем столбцы:
После этого сохраняем пакет, иего запускаем.
Пакет создали и должен работать.
Удачи .
Автор:Вячеслав на22:49
Ярлыки:Excel Linked Server OPENDATASOURCE OPENROWSET