excel to database - 将列和行匹配转换为数据库格式

时间:2013-08-12 13:51:56

标签: database excel format

为措辞严厉的问题道歉。

我在excel中有下表:

enter image description here

真实文件宽800个,深2800行,超过200万个组合。更多的是在数据库中很难管理。

我需要将数据转换为数据库友好格式,例如:

enter image description here

说实话,我不知道从哪里开始。在excel或现有脚本中是否有反向支点来执行此操作?

所以逻辑,其中row遇到excel中的列,获取值并将所有三个写入数据库格式。

任何指针?

一如既往地谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用此代码创建一个csv文件,然后可以将其导入到您选择的数据库中。我在一个类似于你描述的数据集的数据集上进行了测试,并在大约30秒内完成。

Sub tgr()

    Dim arrData As Variant
    Dim rIndex As Long
    Dim cIndex As Long
    Dim i As Long
    Dim strLine As String
    Dim strTemp As String

    arrData = Range("A1", Cells(Cells(Rows.Count, "A").End(xlUp).Row, Cells(1, Columns.Count).End(xlToLeft).Column)).Value

    Close #1
    Open "C:\Temp\ExcelData.csv" For Output As #1
    Print #1, "Product,Customer,Price"
    For rIndex = 2 To UBound(arrData, 1)
        For cIndex = 2 To UBound(arrData, 2)
            strLine = vbNullString
            For i = 1 To 3
                strTemp = Choose(i, arrData(rIndex, 1), arrData(1, cIndex), arrData(rIndex, cIndex))
                If InStr(1, strTemp, ",", vbTextCompare) > 0 Then strTemp = """" & strTemp & """"
                strLine = strLine & "," & strTemp
            Next i
            Print #1, Mid(strLine, 2)
        Next cIndex
    Next rIndex
    Close #1

    Erase arrData

End Sub

答案 1 :(得分:-2)

您可以将转置功能用于此目的。