【发布时间】:2016-07-18 15:38:27
【问题描述】:
我的任务是生成表单 excelsheet,我必须根据 excelsheet 中提供的数据类型设计表单。例子:
我正在尝试从上面的 excel 数据中创建一个 JSON 架构,以便我可以将其插入 mongodb 以动态生成表单。
以下是我正在尝试实现的代码:
var workbook = XLSX.readFile(req.file.path);
//console.log(workbook);
var result = {};
workbook.SheetNames.forEach(function (sheetName) {
var roa = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
if (roa.length > 0) {
result = roa;
}
});
//return result;
//console.log(result);
var jsonData = {};
var dropdown = {};
var attrTypes = result[0];
//console.log(attrTypes);
for (var i = 1; i < result.length; i++) {
var obj = result[i];
//console.log(obj);
for (var key in obj) {
var attrName = key;
var attrValue = obj[key];
if (attrTypes[attrName]) {
var type = attrTypes[attrName].toLowerCase().replace(/ /g, ''); // Means type is given
//console.log(type);
if (type === "selectbox") {
console.log(attrValue);
//var dropdown = attrValue;
//console.log(dropdown);
}
} else {
//console.log(type); // Means type is not given
jsonData = attrName + ":" + attrValue;
//console.log(jsonData);
}
}
}
预期JSON 输出:
[
{
Number : 1,
FirstName : "Abc",
LastName : "Xyza",
Dept: ['Finance','Health','Insurance'],
Country : ['US','Australia','Canada'],
Year : ['2014','2015','2016'],,
DateofBirth" : new Date(1937,05,02),
Gender : ['M','F']
},
{
Number : 2,
FirstName : "Abcd",
LastName : "Xyzb",
Dept: ['Finance','Health','Insurance'],
Country : ['US','Australia','Canada'],
Year : ['2014','2015','2016'],,
DateofBirth" : new Date(1948,10,27),
Gender : ['M','F']
}
.
.
and so on
]
以上是我试图在 MEANSTACK 中实现的代码。
任何帮助将不胜感激。
【问题讨论】:
-
不要粘贴代码块并要求我们调试它。你试过什么?实际与预期的行为是什么?错误信息? stackoverflow.com/help/how-to-ask
-
@JuanMendes:好的。让我更新一个帖子
-
@JuanMendes:我已经更新帖子请检查它
-
预期的
Dept值是一个数组?不应该是下拉列表的值吗?我建议先将工作表转换为常规字符串二维数组,然后再创建对象。 -
错误/问题是什么?您提出的问题越多,得到的回答就越快。
标签: javascript json mongodb mean-stack mean