2017-03-21 27 views
1

我使用UI-Grid创建我的角度应用网格视图。 UI-Grid提供将过滤和完整网格数据导出为csv或pdf格式。但我需要将数据导出到excel。如何角UI网格过滤和全面的数据导出到Excel

我刚才用Alasql导出网格数据,但在那里我用NG-重复生成的网格。

这里UI电网指令需要生成网格通过使用我们可以将数据导出UI并网指令曝光简单方法和护理。只是想知道是否有人试图将数据导出到Excel中。

不共享,因为我使用相同的代码,通过UI网格教程及其对我的工作所提供的代码,只是我需要在Excel文件导出。

+0

我觉得现在最简单的方法是生成CSV格式的内容并下载与CSV扩展 – neptune

+0

CSV数据应在Excel会自动打开一个blob对象。我也使用UI-Grid,当我以csv格式导出并单击“打开”时,Excel打开并显示工作表中的数据。当你打开你下载的CSV数据会发生什么? –

+0

通常当我们在excel中打开一个csv时,所有数据都在一列中。除非我们已经使用数据>来自文本选项并将','作为分隔符将csv导入到excel中。即使我们在任何csv文件上执行过一次这样的动作,excel也会应用相同的分隔符并在不同的列中生成数据,以后我们会在Excel中打开一个csv。 – techprat

回答

2

我使用的UI格太,以将数据导出到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'); 

最后在上面的函数中用'entities'代替'$ scope.gridOptions.data'。

+0

获取完整的数据导出是好的,但是当我在网格上使用getVisibleRows方法时,它会返回有关过滤行的元数据,而不是这些行的数据 – techprat

+1

您是对的,对不起我的坏。函数gridApi.core.getVisibleRows返回一个对象数组,其中每个对象都包含一个实体字段(即实际的行)。为了只获取我使用的map函数来自下划线库“entities = _.map($ scope.filteredData,'entity');”。 – Marian

+0

很酷的工作,非常感谢:) – techprat