【问题标题】:ag-grid copy to clipboard with formatting/styles feature具有格式/样式功能的 ag-grid 复制到剪贴板
【发布时间】:2020-07-27 23:04:24
【问题描述】:

我想将 ag-grid 的数据复制到带有格式的剪贴板。 我可以复制没有格式/样式的数据。

ag-grid 中是否提供该功能,以便我也可以复制数据格式。 我正在 ag-grid(angular) 中尝试将日期粘贴到 excel 中。

最好的问候, 卡莱姆

【问题讨论】:

    标签: ag-grid-angular


    【解决方案1】:

    如果您指的是能够使用“html 样式和格式”复制值,这在 agGrid 中是不可能的,并且不一定有用,因为您会将 HTML 代码粘贴到 Excel 中。

    您可以阅读此处了解如何在导出时实现 Excel 样式:https://www.ag-grid.com/javascript-grid-excel/

    您可以使用 gridOptions 方法 processCellForClipboard 自行准备数据,但要导出。

    但是,如果您像我一样想简单地从列的 ValueFormatter 访问数据,下面是我能够实现此目的的唯一方法:

    processCellForClipboard = (params: ProcessCellForExportParams) => {
    
            let colDef:ColDef = params.column.getColDef();
            if (colDef.valueFormatter){
                return colDef.valueFormatter({
                    ...params,
                    data: params.node?.data,
                    colDef: colDef
                } as ValueFormatterParams);
            }
    
            return params.value;
     };
    

    这个想法是,使用 ValueFormatter 来格式化您希望在网格中显示的值。这样,在从网格中复制值时,您至少可以将值格式化为正确的字符串。

    干杯

    【讨论】:

    • 嘿!我收到此解决方案的错误。错误是:----- (property) ColDef.valueFormatter?: I ((params: ValueFormatterParams) ) 格式化值的函数,应该返回一个字符串。不用于 CSV 导出或复制到剪贴板,仅用于 UI 单元格渲染。 TS2349:(TS)此表达式不可调用。并非所有类型为“string I ((params: ValueFormatterParams) => string)”的成分都是可调用的。类型“字符串”没有调用签名。
    • Nvm,它工作。我不得不将 colDef 设为“any”而不是“ColDef”。不知道为什么! ------ let colDef: any = params.column.getColDef();
    猜你喜欢
    • 2015-05-24
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多