создание строки с разделителями-запятыми на основе таблицы Excel - PullRequest
1 голос
/ 14 июня 2011

Мне нужно создать строку с разделителями-запятыми с парой ключ-значение на основе данных в таблице Excel. Поскольку картинка стоит тысячи слов ... problem parsing excel

Верхняя строка - это имя столбца, и, как показано, я хочу превратить строку 1877 в следующую строку

8:0,9:1,10:0,11:2 ...

формат будет column_name:column_value,... Так как у меня есть много данных для анализа, мне интересно, кто-нибудь может предложить лучший подход для генерации строка, которая в конечном итоге в базе данных MS SQL?

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

Вот как я «решил» проблему удаления данных из Excel: Я назвал два диапазона Rng_Col (заголовки столбцов) и Rng_Row (ряд столбцов) и добавил кнопку. enter image description here

чем я ввел следующий код VBA:

Private Sub btnRun3_Click()
    'Application.SendKeys "^g ^a {DEL}"
    Dim inserStatement As String
    insertStatement = "INSERT yourTableName(field1, field2, field3) VALUES(3, "
    Dim result, finalResult As String
    Dim offset As Integer
    offset = 1
    For Each r In Range("Rng_Rows3")
        For Each c In Range("Rng_Col3")
            result = result & "," & c.Value & ":" & r.offset(0, offset).Value
            offset = offset + 1
        Next c
        offset = 1
        finalResult = insertStatement & r.Value & ", N'" & Right(result, Len(result) - 1) & "') "
        Debug.Print finalResult
        result = ""
    Next r
End Sub

Я закончил с оператором sql insert; надеюсь, это кому-нибудь поможет ...

0 голосов
/ 14 июня 2011

Если это для разовой загрузки, вы можете просто написать формулу в Excel и основать свою нагрузку на этом.

=CONCATENATE(C$3,":",$C4,",",D$3,":",$D4,",",E$3,":",$E4,",",F$3,":",$F4)

Вышеприведенное можно скопировать для всех строк.Он охватывает только первые 4 столбца, но я думаю, что вы поняли.

Опять же, я бы рекомендовал этот подход только в том случае, если это разовая нагрузка, поскольку она требует этого шага вручную.Что-то, что вам нужно повторить, вы должны посмотреть на возможности ваших инструментов ETL (например, SSIS)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...