【发布时间】:2016-07-21 13:00:48
【问题描述】:
我正在使用开箱即用的 ag-grid ,是否有用于导出到 excel 的功能。到目前为止,我还没有编写任何事件代码来导出到 csv。我在想,就像它的排序和过滤功能一样,这也是开箱即用的(例如 highcharts 的上下文菜单)。
所以我需要设置一个网格选项以使其准备好导出到 csv 或 excel
谢谢
【问题讨论】:
标签: ag-grid
我正在使用开箱即用的 ag-grid ,是否有用于导出到 excel 的功能。到目前为止,我还没有编写任何事件代码来导出到 csv。我在想,就像它的排序和过滤功能一样,这也是开箱即用的(例如 highcharts 的上下文菜单)。
所以我需要设置一个网格选项以使其准备好导出到 csv 或 excel
谢谢
【问题讨论】:
标签: ag-grid
当前版本的 ag-grid (4.0.7) 没有该功能。要完成 csv 导出,您必须调用 ag-grid api 函数,例如:
$scope.exportToCsv = function () {
var params = {
skipHeader: false,
skipFooters: true,
skipGroups: true,
fileName: "export.csv"
};
$scope.gridOptions.api.exportDataAsCsv(params);
}
【讨论】:
通过右键单击单元格在上下文菜单中的 ag-grid(版本 20 或更高版本)中启用导出。 默认情况下,上下文菜单提供值“复制”和“粘贴”。复制会将选定的单元格或行复制到剪贴板。粘贴将永远被禁用。
对于 Angular 2 及以上版本使用这个
import { AllModules } from '@ag-grid-enterprise/all-modules'; /* Import AllModules */
@Component({
selector: 'my-app',
template: `
<ag-grid-angular
#agGrid
style="width: 100%; height: 100%;"
id="myGrid"
class="ag-theme-alpine"
[modules]="modules"
[columnDefs]="columnDefs"
[rowData]="rowData"
(gridReady)="onGridReady($event)"
></ag-grid-angular>
`,
})
export class AppComponent {
constructor(){
}
public modules: Module[] = AllModules;/*This variable Enable Export in context Menu*/
}
【讨论】:
如果您想启用企业 Excel 导出功能,则有两种方法,具体取决于您安装的 AG Grid 包。
包
如果您的 package.json 文件看起来像这样,那么您使用的是网格包方法。
"ag-grid-community": "^27.0.0",
"ag-grid-enterprise": "^27.0.",
"ag-grid-angular": "^27.0.0",
那么您只需要在代码中包含以下导入即可启用所有企业功能。
import 'ag-grid-enterprise'
模块
如果您的 package.json 文件看起来像这样,那么您正在使用功能模块。您需要包含 MenuModule 和 ExcelExportModule 才能启用启用 Excel 导出的上下文菜单。
"@ag-grid-community/core": "^27.0.0",
"@ag-grid-community/client-side-row-model": "^27.0.",
"@ag-grid-enterprise/menu": "^27.0.0",
"@ag-grid-enterprise/excel-export": "^27.0.0",
您还需要确保使用ModuleRegistry 向网格注册这些模块
import { ModuleRegistry } from '@ag-grid-community/core';
import { ClientSideRowModelModule } from "@ag-grid-community/client-side-row-model";
import { MenuModule } from "@ag-grid-enterprise/menu";
import { ExcelExportModule } from "@ag-grid-enterprise/excel-export";
ModuleRegistry.registerModules([
ClientSideRowModelModule,
MenuModule,
ExcelExportModule
]);
【讨论】: