我正在开发一个谷歌数据工作室社区连接器,它从谷歌驱动器导入 csv 数据。它正在创建字段,但是当我从这些字段创建报告时,它不会显示任何可视化数据。
我认为与字段的数据映射存在一些错误。如果有人可以提供帮助。我会感激...
function fetchData(name) {
if (!name) {
sendUserError('Enter file name to connect!');
}
var content = importCSVFromGoogleDrive(name);
if (!content) {
sendUserError('"' + name + '" returned no content.');
}
return content;
}
function getData(request) {
var cont = fetchData(request.configParams.name);
var fields = getFields(request, cont);
var requestedFieldIds = request.fields.map(function(field) {
return field.name;
});
var requestedFields = fields.forIds(requestedFieldIds);
var buildedFields = fields.build();
var content = "";
for (var i = 1; i < cont.length; i++) {
for (var j = 0; j < cont[i].length; j++) {
var value = cont[i][j];
content.concat(value, ",");
}
content.concat('\n')
}
var requestedFieldsIndex = buildedFields.reduce(function(
filtered,
field,
index
) {
if (requestedFieldIds.indexOf(field.name) >= 0) {
filtered.push(index);
}
return filtered;
},
[]);
var contentRows = content.split('\n');
var valueSeparator = ",";
var rows = contentRows
.filter(function(contentRow) {
// Remove rows that are empty.
return contentRow.trim() !== '';
})
.map(function(contentRow, idx) {
var allValues = contentRow.split(valueSeparator);
if (buildedFields.length !== allValues.length) {
sendUserError(
'Error parsing content. Row: ' +
idx +
' has ' +
allValues.length +
' field(s), but ' +
buildedFields.length +
' field(s) were expected.'
);
}
var requestedValues = allValues.filter(function(value, index) {
return requestedFieldsIndex.indexOf(index) >= 0;
});
return {values: requestedValues};
});
rows = rows.slice(1);
var result = {
schema: requestedFields.build(),
rows: rows
};
return result;
}