2011-06-14 94 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語句告終。希望這可能有助於某人...