首页 > 解决方案 > Angular - 使用 aG-Grid 导出模板 CSV 文件

问题描述

在我的项目中,我已经创建了一个将当前网格数据导出到 CSV 文件的函数。我还希望能够导出仅包含列定义和 NO 数据的空 CSV 文件,以便用户可以填写数据并自行上传。我已经让上传工作,但现在我正在努力解决感觉应该是一个简单的问题。我找不到创建模板文件的方法。我考虑使用 exportDataAsCsv 函数:

      templateExport() {
        const params = {
          columnKeys: ['Column1', 'Column2', 'Column3', 'Column4'],
          fileName: 'table-template'
        };
        this.gridOptions.api.exportDataAsCsv(params);
      }

我只使用'allColumns:true'来正常导出网格数据

我还应该补充一点,我正在导出的列与网格中显示的列不完全相同。出现在网格中的某些列不需要用户输入,因此需要在导出中跳过一些列。

有什么方法可以使用 exportDataAsCsv 导出一个空白模板,它会跳过某些列?该网页有多个相似的表格,使用此功能可能会使代码更易于实现。我知道问题可能来自'this.gridOptions。...'。由于“此”网格为空,因此没有“数据”可导出。

我对 Angular 不是很有经验,所以如果有一些我想念的更简单的方法来做到这一点,我愿意接受建议。

标签: angulartypescriptag-grid

解决方案


@thirtydot 我的问题是是否可以使用 ag-grid 的导出功能来导出只有列标题而没有数据的 CSV 文件。

您应该使用shouldRowBeSkipped回调

gridOptions.api.exportDataAsCsv({
    shouldRowBeSkipped: function(node, api, context) {
        // skip every data row
        return true;
    },
});

(调整gridOptions.api到您项目中需要的任何内容)

您还可以columnKeys用来控制导出哪些列:

columnKeys:如果要导出特定列,请提供列键列表(数组)。
shouldRowBeSkipped:允许您从导出中跳过整行。


推荐阅读