Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将角度UI网格过滤和完整数据导出到excel中_Javascript_Angularjs_Angular Ui Grid - Fatal编程技术网

Javascript 如何将角度UI网格过滤和完整数据导出到excel中

Javascript 如何将角度UI网格过滤和完整数据导出到excel中,javascript,angularjs,angular-ui-grid,Javascript,Angularjs,Angular Ui Grid,我正在使用在我的angular应用程序上创建栅格视图。UI网格提供将过滤后的完整网格数据导出为csv或pdf格式。但我需要将数据导出到excel中 我曾使用早期的Alasql导出网格数据,但在那里我使用ng repeat生成网格 在这里,Ui网格指令负责生成网格,通过使用Ui网格指令公开的简单方法,我们可以导出数据。只是想知道是否有人尝试将数据导出到excel中 不共享代码,因为我使用的代码与UI Grid教程提供的代码相同,我需要在excel文件中导出该代码。我也在使用UI Grid的应用程序

我正在使用在我的angular应用程序上创建栅格视图。UI网格提供将过滤后的完整网格数据导出为csv或pdf格式。但我需要将数据导出到excel中

我曾使用早期的Alasql导出网格数据,但在那里我使用ng repeat生成网格

在这里,Ui网格指令负责生成网格,通过使用Ui网格指令公开的简单方法,我们可以导出数据。只是想知道是否有人尝试将数据导出到excel中


不共享代码,因为我使用的代码与UI Grid教程提供的代码相同,我需要在excel文件中导出该代码。

我也在使用UI Grid的应用程序中工作,要将数据导出到xlsx,我使用的alasql如下所示:

$scope.exportXLS = function exportXLS() {
  alasql.promise('SELECT * INTO XLSX("data.xlsx",{headers:true}) FROM ?',[$scope.gridOptions.data])
 .then(function(data){
     console.log('Data saved as XLSX');
  }).catch(function(err){
     console.log('Error:', err);
  });
};
为了只导出filterd数据,我使用gridApi获得它,如下所示:

$scope.filteredData =$scope.gridApi.core.getVisibleRows($scope.gridApi.grid);
然后将实体字段从返回数组中的每个对象映射到新数组 ,我使用下划线库中的映射函数完成了该操作

entities = _.map($scope.filteredData, 'entity');

最后,在上面的函数中将“$scope.gridOptions.data”替换为“entities”。

我现在想到的最简单的方法是生成csv格式的内容,并将其作为具有csv扩展名的blob对象下载。csv数据应在Excel中自动打开。我也在使用UI网格,当我导出为csv并单击“打开”时,Excel打开,数据显示在工作表中。打开下载的csv数据时会发生什么情况?通常,当我们在excel中打开csv时,所有数据都在一列中。除非我们曾经使用Data>From text选项将csv导入excel,并将“,”作为delimeter。即使我们在任何csv文件上执行过一次此操作,excel也会应用相同的分隔符并生成不同列中的数据,以便以后在excel中打开csv时使用。@neptune:我将尝试此选项。目前,我正在尝试获取所有筛选列和数据的列表,然后尝试将其作为blob对象写入。对于类似的情况,如果后端是Java,我通常会使用类似Apache POI的东西调用后端。那里有一个JS库,但不再维护,可能会引起人们的兴趣:。获取完整的数据导出是可以的,但当我在网格上使用getVisibleRows方法时,它会返回有关已筛选行的元数据,而不是那些行的数据。您是对的,对不起,我的错误。函数gridApi.core.getVisibleRows返回一个对象数组,每个对象都包含一个实体字段(即实际行)。为了只获取行,我使用了下划线库“entities=..map($scope.filteredata,'entity');”中的map函数。乐意帮忙。(我在堆栈上的第一个答案)