我必须将 2 个 ag 网格导出到一个 Excel 工作表中。每个 ag 网格数据对应于 Excel 中的工作表
我尝试了这种方式,但是 getsheetdataforexcel 在 angularjs 中不可用,或者我必须为此安装一些东西?我在 1 个屏幕中有 2 个 AG 网格。美国期权和印度期权。我正在使用旧的 AngularJS。看来我在 angularJS ag 网格中没有 getSheetDataForExcel 。我收到错误 getSheetDataForExcel 不是函数。有办法吗?
vm.exportData = function (exportType) {
var spreadsheets = [
vm.USAOptions.api.getSheetDataForExcel({
sheetName: "USA",
}),
vm.IndiaOptions.api.getSheetDataForExcel({
sheetName: "INDIA",
})
];
vm.USAOptions.api.exportMultipleSheetsAsExcel({
data: spreadsheets,
fileName: 'Countries.xlsx'
});
}
getRowNodeId
和 getDisplayedRowCount
手动为每个工作表创建数据,然后使用 exportDataAsExcel
导出到 Excel。
尽管如此,了解您正在使用哪个版本的图表/网格会有所帮助。
例如,在 Grid v27.1.0/Charts 5.10 之后,
gridOptions.immutableData
和 gridOptions.getRowNodeId()
已被弃用。相反,实现 getRowId()
,然后网格也会自动将数据视为不可变数据。
不过,该方法提供了对导出哪些行的更多控制,如果您需要在导出之前对每个网格进行不同的操作或格式化数据,则该方法会很有用。
vm.exportData = function () {
// Function to manually extract data from a grid
function extractGridData(gridOptions) {
var rowData = [];
var rowCount = gridOptions.api.getDisplayedRowCount();
for (var i = 0; i < rowCount; i++) {
var rowNode = gridOptions.api.getDisplayedRowAtIndex(i);
rowData.push(rowNode.data);
}
return rowData;
}
// Extracting data from both grids
var USAData = extractGridData(vm.USAOptions);
var IndiaData = extractGridData(vm.IndiaOptions);
// Preparing data for export
var exportData = [
{
name: "USA",
data: USAData
},
{
name: "INDIA",
data: IndiaData
}
];
// Exporting to Excel
vm.USAOptions.api.exportDataAsExcel({
data: exportData,
fileName: 'Countries.xlsx'
});
};
extractGridData
函数迭代网格的每一行并构造一个行数据数组。 USAData
和 IndiaData
保存来自各自网格的数据。 exportDataAsExcel
使用包含每张纸数据的数组进行调用。