powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Импорт таблицы с excel в sql server
19 сообщений из 19, страница 1 из 1
Импорт таблицы с excel в sql server
    #40058822
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, у меня такой вопрос можно ли импортировать данные с excel в sql server (не в локальную таблицу ) я знаю что это можно сделать через матер импорта и экспорта но она годиться только для одной таблицы вторую таблицу импортировать просто не смог так как там выходит только одна таблица в которую я импортировал первую таблицу скажем так "остатки" теперь мне нужно как то импортировать таблицу "справочник". Подскажите как это сделать . И да если создать новую таблицу вручную и зайти в мастер импорта то он тупо не находит эту таблицу. Надеюсь решение очень простое.
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40058887
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно подключить excel-файл как линкованный сервер. Там выбирать лист, с которым хочешь работать. Каждый лист - это как отдельная таблица.
Процедуры:
sp_addlinkedserver - добавление линкованного сервера
sp_addlinkedsrvlogin - добавление логина
sp_tables_ex - список листов экселя
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40058992
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Megabyte,

а какие еще способы есть ? скажем так создать таблицу в sql server и каким то образом если это возможно сделать его локальным. Думаю есть более упрощенные решения, если они есть то можете подсказать.
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40058998
Murmakil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ablaykhan,
Тебе нужен visual studio. Создаешь там задачу потока данных
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059002
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Импорт экселей средствами МССКЛ - лажа. Постоянные проблемы с форматами (даты, числа) и прочими разделителями.
Файл нужно тщательно подготовить, прежде чем импортировать.
Иногда приходилось использовать АКСЕСС в качестве вспомогательного инструмента.
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059013
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan,
пару лет назад в сети пробегал готовый пример хранимки которая скакала по всем файлам в папке и по всем необходимым листам в каждом файле и импортировала их в SQL через openrowset()
поищите...

а для пытливых умов,
теоретически, формат хранения последних Экселей OpenXML, а в SQL есть функция openxml() (тавтологично как-то).
схемы все есть..
че бы не попробовать?
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059127
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше всего написать или заказать или найти приложение-экпортёр. Эксель - это не таблицы, а куча клеточек в общем случае, да ещё и с формулами.
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059140
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если задача одноразовая, можно и руками вставить, создаешь таблицу с нужными полями, открываешь её для изменения и копипастом вставляешь данные.
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059173
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ablaykhan
Здравствуйте, у меня такой вопрос можно ли импортировать данные с excel в sql server (не в локальную таблицу ) я знаю что это можно сделать через матер импорта и экспорта но она годиться только для одной таблицы вторую таблицу импортировать просто не смог так как там выходит только одна таблица в которую я импортировал первую таблицу скажем так "остатки" теперь мне нужно как то импортировать таблицу "справочник". Подскажите как это сделать . И да если создать новую таблицу вручную и зайти в мастер импорта то он тупо не находит эту таблицу. Надеюсь решение очень простое.


Мастер экспорта-импорта - это решение для одинокой таблицы. Для каждой новой таблицы надо будет запускать заново. Надеюсь, что Ваша редакция SQL Server-a позволяет сохранять созданные мастером импорта-экспорта .dtsx пакеты.

У Вас варианты - или для каждой новой таблицы надо будет запускать заново Мастер экспорта-импорта; или использовать VBA в Excel; или Visual Studio с пакетом расширения SQL Data Tools - позволит импорт всех файлов засунуть в один dtsx-пакет; или OpenRowset, как написали коллеги выше; или конвертация Excel-файла в .csv-файл и использование утилиты bcp, обёрнутой в .bat-файл. Для каждого .csv-файла - утилита вызывается заново. Ещё более извращённый вариант, чем bcp - писать свою прогу для импорта на C#.
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059175
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу openrowset - у меня завалялись примеры работы с Excel-файлами разных версий при помощи openrowset из TSQL:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
EXEC sp_configure 'show advanced options', 1
RECONFIGURE with override
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE with override

exec master.dbo.sp_msset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',N'AllowInProcess',1
exec master.dbo.sp_msset_oledb_prop N'Microsoft.ACE.OLEDB.12.0',N'DynamicParameters',1

exec master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0',N'AllowInProcess', 1
exec master.dbo.sp_msset_oledb_prop N'Microsoft.Jet.OLEDB.4.0',N'DynamicParameters',1

select ID, Name, City
from openrowset('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=Yes;Database=D:\book.xls',[Sheet1$])

select ID, Name, City
from openrowset('Microsoft.ACE.OLEDB.12.0',
				'Excel 8.0;HDR=Yes;Database=D:\book.xls;IMEX=1',
				'select * from [Sheet1$]')

select ID, Name, City
from openrowset('Microsoft.ACE.OLEDB.12.0',
				'Excel 12.0 Xml;HDR=Yes;Database=D:\book.xlsx',
				'select * from [Sheet1$]')
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059255
Михаил Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ablaykhan
можно ли импортировать данные с excel в sql server

Можно макросом. Подготовить таблицу, нажать кнопку, все улетает.
Если конешно подготовлено и настроено все должным образом)
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059305
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ablaykhan , а тебе это однократно нужно сделать или постоянно?
И какое количество записей?
Если количество записей небольшое, ну, максимум десятки тысяч, и сделать нужно однократно, как показывает моя практика, проще всего сделать так:
1. Нарисовать в свободной ячейке Excel формулу, типа:
= "('" & A2 & "', '" & B2 & "', " & C2 & "),"
Она выдаст что-то типа: ('Кот', 'Балбес', 3),
2. "Протянуть" ее до конца таблицы
3. Скопировать столбец Ctrl+C
4. В SSMS - открыть новую вкладку запроса в контексте нужной БД и написать запрос:
Код: sql
1.
2.
3.
4.
5.
6.
Insert [Животные]
Select * from (Values
('Кот', 'Балбес', 3),
('Пес', 'Пират', 5),
('Курица', 'Дурица', 1)
) t([Тип], [Кличка], [Лет])


И запустить его на исполнение.
Последнюю запятую только убрать :-)

Не смотря на долгое описание процесса - делается всё это очень быстро, и даже быстрее, чем возня со всякими SSIS пакетами, цеплянием целевых таблиц как ODBC источников и т.д.
И ко всему прочему - доступно тогда, когда сервер недоступен непосредственно. А, например, вы его видите через цепочку RDP окошек.
Ну и позволяет еще дополнительно манипулировать самими данными уже средствами sql.
Табличный конструктор (Values (...), (...)) - позволяет обращаться с данными, используя весь арсенал Select.
Собственно, для разовых задач - я уже и забыл, когда чем то другим пользовался.
:-)
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059619
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uaggster,

Спасибо, постоянно а именно каждый день. Записи большие до миллиона.
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059620
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Михаил Л,

у меня с макросами все плохо
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059621
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L_argo,

да тоже такая проблема
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059622
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShIgor,

Спасибо обязательно попробую
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059623
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
teCa,

Задача должна выполняться ежедневно
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059625
Ablaykhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DaniilSeryi,

спасибо большое что написали все возможные варианты
...
Рейтинг: 0 / 0
Импорт таблицы с excel в sql server
    #40059992
Михаил Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ablaykhan
Михаил Л,

у меня с макросами все плохо

У меня тоже не очень, но благодаря форумам нахожу что надо и применяю!
Попробуйте продолжить здесь или создать новую тему
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Импорт таблицы с excel в sql server
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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