Я экспортирую данные из Excel в стандартный формат JSON, используя модуль VBA JsonConverter.Вывод JSON аналогичен приведенному ниже: -
[{
"Manufacturer": "Ford",
"Code": 5551234,
"Model": "Escort"
"Status": "Available"
},
{
"Manufacturer": "Ford",
"Code": 5551335,
"Model": "Mondeo"
"Status": "Out of stock"
},
{
"Manufacturer": "Ford",
"Code": 5551240,
"Model": "Fiesta"
"Status": "Available"
},
{
"Manufacturer": "BMW",
"Code": 5552567,
"Model": "M1"
"Status": "Available"
},
{
"Manufacturer": "BMW",
"Code": 5552328,
"Model": "M2"
"Status": "Available"
},
{
"Manufacturer": "BMW",
"Code": 5552573,
"Model": "M3"
"Status": "Out of stock"
}
]
Код VBA, который я использую, выглядит следующим образом: -
Sub Excel2JSON()
Dim excelRange As Range
Dim jsonItems As New Collection
Dim jsonDictionary As New Dictionary
Dim jsonFileObject As New FileSystemObject
Dim jsonFileExport As TextStream
Dim i As Long
Dim cell As Variant
Set excelRange = Cells(1, 1).CurrentRegion
For i = 2 To excelRange.Rows.Count
jsonDictionary("Manufacturer") = Cells(i, 1)
jsonDictionary("Code") = Cells(i, 2)
jsonDictionary("Model") = Cells(i, 3)
jsonDictionary("Status") = Cells(i, 4)
jsonItems.Add jsonDictionary
Set jsonDictionary = Nothing
Next i
Set jsonFileExport = jsonFileObject.CreateTextFile(".../cardata.json", True)
jsonFileExport.WriteLine (JsonConverter.ConvertToJson(jsonItems, Whitespace:=3))
End Sub
Затем я импортирую этот JSON в таблицу HTML, используя следующий скрипт: -
$(document).ready(function() {
$.ajax({
url: "cardata.json",
method: "GET",
dataType: "json",
success: function(data) {
var $tbody = $("table#data tbody");
$.each(data, function(i, data) {
var $tr = $("<tr></tr>");
$tr.appendTo($tbody);
var $td = $("<td></td>");
$td.html(data.Manufacturer)
.appendTo($tr);
$td = $("<td></td>");
$td.html(data.Code)
.appendTo($tr);
$td = $("<td></td>");
$td.html(data.Model)
.appendTo($tr);
$td = $("<td></td>");
$td.html(data.Status)
.appendTo($tr);
});
},
});
});
Вопрос / проблема двоякий.Я хочу импортировать JSON в две разные HTML-таблицы, а не в одну (одна таблица для Ford, другая для BMW и т. Д.).Я знаю, что JSON ниже будет работать с 2 разными таблицами, однако я не могу изменить код VBA для создания JSON, который выглядит следующим образом: -
{
"Ford": [{
"Code": 5551234,
"Model": "Escort"
"Status": "Available"
},
{
"Code": 5551335,
"Model": "Mondeo",
"Status": "Out of stock"
},
{
"Code": 5551240,
"Model": "Fiesta",
"Status": "Available"
}
],
"BMW": [{
"Code": 5552567,
"Model": "M1",
"Status": "Available"
},
{
"Code": 5552328,
"Model": "M2",
"Status": "Available"
},
{
"Code": 5552573,
"Model": "M3",
"Status": "Out of stock"
}
]
}
Альтернативой является сохранение JSON таким же, но изменение способа импорта скрипта в 2 разные HTML-таблицы.