2011-06-14 149 views
1

我必须根据Excel表格中的数据生成逗号分隔的字符串,其中包含键值对。 由于图片胜过千言万语...... problem parsing excel生成基于excel表格的逗号分隔字符串

首行是列名和可视化我想转行1877年到下面的字符串

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

所以格式将column_name:column_value,... 因为我有很多的数据解析我很好奇,如果有人可以建议最好的方法来生成 字符串,将最终在MS SQL数据库?

感谢

+0

列名只是列号? – Amy 2011-06-14 15:44:13

+0

是的,他们只是列号 – krul 2011-06-14 15:49:53

回答

0

如果这是你可能只想写在Excel的公式和基础的负荷过一个一次性加载。

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

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

同样,我只会建议这种方法,如果这是一次性负载,因为它需要这个手动步骤。对于你需要重复的东西,应该看看你的ETL工具的功能(如SSIS)

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语句告终。希望这可能有助于某人...