我必须根据excel表中的数据生成带键值对的逗号分隔字符串。 既然图片胜过千言万语......
顶行是列名,并且可视化我想将第1877行转换为以下字符串
8:0,9:1,10:0,11:2 ...
因此格式为column_name:column_value,...
由于我需要解析大量数据,所以如果有人能提出最佳的生成方法,我很好奇
将在ms sql数据库中结束的字符串?
由于
答案 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(列行)并添加了一个按钮。
比我介绍的以下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语句;希望这可能对某人有所帮助......