Как я могу получить значения, разделенные запятыми, из файла Excel в отдельные строки, которые, в свою очередь, будут вставлены в базу данных?

У меня есть файл excel, который имеет столбец, который содержит несколько разделенных запятыми идентификаторов для каждой строки, и каждая строка содержит другой столбец текста, например

IDs Text 1 This is a row of text 2,3 Another row of text 4,5,6 More text in this row 

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

Результатом в базе данных будет, например,

 ID Text 1 This is a row of text 2 Another row of text 3 Another row of text 4 More text in this row 5 More text in this row 6 More text in this row 

Есть ли какие-либо функциональные возможности в Excel 2010 или Sql Server 2008, которые могут сделать это для меня?

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

Вы можете написать простой маленький макрос, который будет генерировать инструкции insert для вас, а затем вы можете просто скопировать и вставить их в студию управления:

 Dim i as Integer, j as Integer Dim ids as Variant For i = 0 To 100 ids = Split(ActiveSheet.Cells(i, 1).Value) For j = 0 To UBound(ids) ActiveSheet.Cells(i, 3 + j).Value = "INSERT INTO myTable VALUES (" & ids(j) & ", " ActiveSheet.Cells(i, 2).Value & ")" Next j Next i 

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

UPDATE: добавлено «+ j» для сопоставления столбцов для вывода, иначе вы будете придерживать каждую строку поверх предыдущей, oops 🙂

Если у вас есть функция split, вы можете использовать следующий оператор, чтобы получить желаемый результат

 select val, Text from ExcelTBL1 cross apply dbo.split(ExcelTBL1.IDs,',') 

Перед запуском вышеуказанного скрипта вы можете загружать данные в промежуточную таблицу из Excel в SQL Server, например, с помощью задачи SSIS. Затем вы можете выполнить над sql с INSERT INTO … SELECT … FROM statemtent

Примеры использования функций split см. По адресу : http://www.kodyaz.com/articles/t-sql-convert-split-delimeted-string-as-rows-using-xml.aspx http://www.kodyaz.com /articles/sql-server-string-split-tsql-clr-function-sample.aspx

И для задач SSIS для импорта данных из разделенных запятыми значений, пожалуйста, обратитесь: http://www.kodyaz.com/articles/import-csv-flat-file-into-sql-server-using-ssis-integration-services.aspx http://www.kodyaz.com/articles/sql-server-import-data-sql-server-import-export-data-wizard-ssis-package.aspx

  • Извлечение табличных данных в SQL Server 2008 в таблицу Excel
  • Ошибки усечения при попытке импортировать из Excel
  • SQL Дамп в Excel
  • BCP-запрос -w генерирует неверный файл CSV
  • Как удалить дубликаты строк из таблицы, где поле certian равно указанному
  • Текст был усечен или один или несколько символов не совпадали на целевой кодовой странице. При импорте из файла Excel
  • BULK INSERT - файл xlsx
  • Сохранить результаты SQL-запроса в файл Excel
  • MS SQL Server генерирует повторяющиеся таблицы при импорте файла Excel
  • Отчет диаграммы SSRS с ползунками для фильтрации или изменения набора данных
  • SQL Server 2008 openrowset
  • Interesting Posts

    Можете ли вы воспроизвести функцию Floor, найденную в Excel на Java?

    Обновить / загрузить значения из Excel в базу данных SQL Server

    Исключение C # NPOI «Внешний лист является частью LinkTable» при создании объекта HSSFWorkbook из FileStream

    Код работает на localhost, а не на сервере приложений.

    Входные данные из файла выбора с помощью VBA

    Заполнение альтернативных столбцов в excel на основе условного форматирования

    R – проблема с пробелом и '/' в имени переменной и столбца

    Фокус на приложении Excel VSTO WPF

    Мне нужно сравнить ячейку A1 с ячейкой A2 и поместить результат в A3. Если все слова в любом порядке

    Добавить индексированные листы в книгу Excel без Openpyxl?

    Подпрограмма VBA, которая изменяет все имена рабочих листов в рабочей книге

    MySQL-код для преобразования даты и времени Excel

    сделать положение оси диаграммы низким – vba

    Выбор таблицы данных VBA

    Найти минимальное значение активной диаграммы

    Давайте будем гением компьютера.