BjorntobeWild
Gebruiker
- Lid geworden
- 29 aug 2011
- Berichten
- 120
Hoi,
Ik heb een JSON file welke is gegenereerd vanuit een database. Nu wil ik op een zo snel mogelijke manier de gegevens in een Excel Sheet verwerken. Momenteel heb ik het zo opgebouwd dat de kolomnamen van de database één voor één worden weggeschreven in een sheet en vervolgens worden alle regels één voor één in de sheet gekopieerd.
Nu zitten er nogal veel regels in de tabel waardoor het op deze manier een tijdrovende klus wordt. Ik denk dat het nl. veel sneller kan, maar weet niet hoe... Wie weet dat één van jullie mij kan helpen.
Hieronder een stukje van de JSON file en mijn VBA code.
Ik heb een JSON file welke is gegenereerd vanuit een database. Nu wil ik op een zo snel mogelijke manier de gegevens in een Excel Sheet verwerken. Momenteel heb ik het zo opgebouwd dat de kolomnamen van de database één voor één worden weggeschreven in een sheet en vervolgens worden alle regels één voor één in de sheet gekopieerd.
Nu zitten er nogal veel regels in de tabel waardoor het op deze manier een tijdrovende klus wordt. Ik denk dat het nl. veel sneller kan, maar weet niet hoe... Wie weet dat één van jullie mij kan helpen.
Hieronder een stukje van de JSON file en mijn VBA code.
Code:
"Rows": [
["0", "Nieuw", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
["d146a093-5d32-4c60-bfbd-a8a70147accc", "Naam 1", "18-03-2018", null, "Monteur 1", null, null, "0.0", "0.0", "0", "0.0", "0.0", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
["d146a093-5d32-4c60-bfbd-a8a70147accc-1", "Naam 2", "18-03-2018", null, "Monteur 2", null, null, "0.0", "0.0", "0", "0.0", "0.0", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null],
],
Code:
' Data
Dim x As Integer
Dim y As Integer
Dim r As Integer
y = 1
x = 1
For Each dLevelOne In JSON("DataSource")("Headers")
Blad10.Cells(x, y).Value = dLevelOne("Name")
'Debug.Print "Id: " & dLevelOne("Name") '("Id")
y = y + 1
Next dLevelOne
Dim varArr As Variant
Dim b As Long
y = 1 'kolomnummer sheet
x = 1 'kolomnummer DSS
r = 2 'regelnummer
'rijen ophalen en in Blad10 (spuikaart) plaatsen
For Each dLevelTwo In JSON("DataSource")("Rows")
varrarr = dLevelTwo.Count
For b = LBound(varArr, 1) To UBound(varArr, 1) Step 1
For Each Item In dLevelTwo
Blad10.Cells(r, y).Value = dLevelTwo(x)
Debug.Print dLevelTwo.Item(x)
y = y + 1
x = x + 1
If x = dLevelTwo.Count + 1 Then
r = r + 1
x = 1
y = 1
End If
Next Item
Next dLevelTwo