2013-03-18 3 views
1

Есть ли доступные инструменты, которые упрощают импорт данных из листа Excel (или даже Access) в SQL Azure? Я мог бы написать сценарий C# (и я предполагаю, что это лучший доступный сейчас), но я подумал, что проверю, есть ли там другие инструменты. У меня есть простой лист Excel для импорта, но его десятки тысяч записей и скорее сделают это с помощью автоматизированного инструмента.Импорт данных - Excel в SQL Azure?

Помощь?

+0

В соответствии с [документацией] (http://msdn.microsoft.com/en-us/library/windowsazure/ee730904.aspx) поддерживаются SSIS и bcp. Вы уже смотрели на них? – Pondlife

+0

Арен те эти инструменты на консоли? Я предполагаю, что я надеялся на что-то с графическим интерфейсом. –

+0

bcp - инструмент командной строки. В Visual Studio разработаны пакеты SSIS. Независимо от того, могут ли они «легко» использоваться, зависит от того, кто их использует; они не предназначены для инструментов конечного пользователя. – Pondlife

ответ

4

Вариант 1, копирование и вставка

это очень грубое решение, но я использовал его раньше, правда, с небольшими объемами данных. Просто выберите строки и столбцы в Excel, убедившись, что они коррелируют с вашей схемой таблицы базы данных. Скопируйте в буфер обмена. Откройте соединение с вашей базой данных в Visual Studio, выберите последнюю пустую строку и вставьте ее.

Как я уже сказал, очень грубое решение, но если оно работает и экономит ваше время, это важно. Сначала попробуйте с небольшим выбором строк и не забудьте исключить любые автоматически увеличивающиеся столбцы. Если вы сначала конвертируете в CSV, вы производите произвольное форматирование Excel, которое может не импортироваться в схему таблицы. Я должен быть честным, я не знаю, как этот метод будет работать с более крупными наборами данных, очевидно, это будет зависеть от данных в документе Excel, количества столбцов и т. Д. Возможно, вам придется переместить данные в куски, но это вполне может быть быстрее других методов.

Вариант 2, CSV для DataTable

Второй способ требует кодирования, но даст вам больший контроль над тем, как данные отображаются в таблице данных. Это в основном предполагает преобразование документа в CSV из Excel, чтение в объект DataTable, циклическое перемещение строк и вставку в таблицу базы данных SQL.

Dim dt As DataTable = New DataTable("myData") 
Dim DataFile As FileInfo = New FileInfo("c:\myspreadsheet.csv") 

Dim MyConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & DataFile.Directory.FullName & "';Extended Properties='text;HDR=NO';Jet OLEDB:Engine Type=96;") 
Dim oledataAdapter As OleDbDataAdapter 
oledataAdapter = New OleDbDataAdapter("SELECT * FROM [" & DataFile.Name & "]", MyConnection) 

oledataAdapter.Fill(dt) 'Bind the csv to the data table 

'LOOP AND INSERT HERE... 
For Each DataRowObj As DataRow In dt.Rows 

Next 
+0

Поддерживается ли Jet.OLEDB в Azure (я думаю, его все 64 бит)? – Lalman

+0

Вполне возможно, но если нет, вы можете использовать библиотеку LumenWorks CSV, я думаю. Он доступен на Nuget. – QFDev

6

Вы также можете использовать SQL Server Импорт & Экспорт данных (32 бит) для передачи данных из файла Excel в таблицы SQL Azure. Это очень быстро. Убедитесь, что при выборе адресата это поставщик данных .Net Framework для SqlServer. Вам также необходимо будет установить источник данных, идентификатор пользователя, пароль &.

+0

Если бы я мог проголосовать за тысячу, я бы это сделал. – gijswijs

Смежные вопросы