基于excel表生成逗号分隔的字符串

时间:2011-06-14 14:00:07

标签: .net sql-server excel parsing csv

我必须根据excel表中的数据生成带键值对的逗号分隔字符串。 既然图片胜过千言万语...... problem parsing excel

顶行是列名,并且可视化我想将第1877行转换为以下字符串

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

因此格式为column_name:column_value,... 由于我需要解析大量数据,所以如果有人能提出最佳的生成方法,我很好奇 将在ms sql数据库中结束的字符串?

由于

2 个答案:

答案 0 :(得分:0)

如果这是一次性加载,你可能只想在excel中编写一个公式,并将你的负载基于此。

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

以上所有行都可以向上复制。它只涵盖前4列,但我认为你明白了。

同样,我只推荐这种方法,如果这是一次性负载,因为它需要这个手动步骤。对于需要重复的内容,您应该查看ETL工具(即SSIS)的功能

答案 1 :(得分:0)

以下是我如何“解决”从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语句;希望这可能对某人有所帮助......