我正在开发一个项目,我必须导入Excel数据并为其创建Web视图,我现在的解决方案是在C#上解析它并将JSON结果作为API发送,我刚发现AlaSQL,导入数据使用纯JS工作正常,但我无法弄清楚如何从控制器加载它来替换我当前的$ http.get(..)
简而言之,我需要使用alasql在SharePoint上调用xls文件来替换Http.get,并直接从数组中访问数据。
编辑:我将尝试的另一种方法是从excel文件中返回返回的java对象中的工厂 目前的代码:
$http.get("xxx/file.json")
.then(function(response) {
$scope.xdata = response.data;
$scope.zdata = response.data;
$scope.collection = response.data;
$scope.labels = [];
$scope.data = [];
$scope.datalength = $scope.zdata.length;
$scope.loading = True;
});
}
答案 0 :(得分:0)
在这里,我提到了基本的控制器样本。请使用它。
app.controller('DataViewCtrl', function($scope, $http){
//scope variable declaration
//local function
function loadDefaultValues(){
$scope.loading = true;
$http.get("xxx/file.json")
.then(function(response) {
$scope.xdata = response.data;
$scope.zdata = response.data;
$scope.collection = response.data;
$scope.labels = [];
$scope.data = [];
$scope.datalength = $scope.zdata.length;
$scope.loading = false;
});
}
//scope function
//call onload functions
loadDefaultValues();
}
});
答案 1 :(得分:0)
我设法让它运行:
alasql(['SELECT * FROM FILE("file.xls",{headers:true})']).then(function(data){
console.log(data[0]);
$scope.xdata = JSON.stringify(data[0]);
$scope.zdata = JSON.stringify(data[0]);
$scope.collection = JSON.stringify(data[0]);
$scope.labels = [];
$scope.data = [];
$scope.datalength = $scope.zdata.length;
$scope.loading = true;
});
}
然而,用NG-repeat渲染它是令人难以置信的缓慢