修改角度网格组件格式导出列
Modify angular grid component format exported columns
我在代码中使用 ag-grid 组件,并希望确保日期列在导出为 CSV 时根据客户需求进行格式化。当前使用 js Date 对象的默认格式。代码可以在这里找到:
https://github.com/ceolter/ag-grid/blob/master/src/ts/csvCreator.ts
我可以直接对代码进行以下更改,但这显然是一种不好的做法。我对 JavaScript 相当陌生,想知道是否有一种标准方法来扩展/覆盖这样的库中的功能。
提议的更改(请注意,这显示了我对js版本所做的更改,而不是使用ts的github版本):
--- Common/scripts/agGrid/ag-grid.js (revision b0e7d54e61e6371b0cab94428cb4329f9f62db11)
+++ Common/scripts/agGrid/ag-grid.js (revision )
@@ -1848,7 +1848,11 @@
+ var exportDateAs = function(dt){if (dt instanceof Date)
+ return dt.getFullYear() + "/" + (dt.getMonth()+1) + "/" + dt.getDate();
+ };
@@ -1883,6 +1887,9 @@
+ if (valueForCell instanceof Date){
+ valueForCell = exportDateAs(valueForCell);
+ }
看起来此功能是在较新版本中添加的:https://www.ag-grid.com/javascript-grid-export/
我的解决方案是手动更新 ag 网格组件中的函数,如下所示。它似乎有效,但不确定它是否是最佳实践。有人愿意发表评论吗?
用我自己的函数替换对象中的函数:
ag.grid.CsvCreator.prototype.getDataAsCsv = agCustom.getDataAsCsv;
新功能
var agCustom;
(function (agCustom) {
// This is a modified version of the getDataAsCsv from
// agGrid to allow date formatting in csv export
agCustom.getDataAsCsv = function (params) {
var LINE_SEPARATOR = ''r'n';
...
var exportDateAs = function(dt){if (dt instanceof Date)
return dt.getFullYear() + "/" + (dt.getMonth()+1) + "/" + dt.getDate();
...
else {
valueForCell = _this.valueService.getValue(column.colDef, node.data, node);
if (valueForCell instanceof Date){
valueForCell = exportDateAs(valueForCell);
}
...
})(agCustom || (agCustom = {}));
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- 如何使用javascript或html下载PDF格式的填写表单
- 货币代码为欧元-金额的格式不应包含小数
- React组件等待所需道具进行渲染
- 如何创建带有插槽的vue js组件预加载程序
- Json数据包含日期和时间格式
- Javascript日期格式类似于ISO,但本地
- KnockoutJS-组件-多个实例
- 如何更改reactjs中外部/独立组件的状态或属性
- 更改angularjs中的日期-时间格式
- 如何在react js中将值从一个组件发送到另一个组件
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- React组件-设置页面标题
- 更改日期范围输入组件的格式
- 如何在使用环回组件存储将文件上传到容器中之前检查文件格式
- 修改角度网格组件格式导出列
- 在reactjs组件中将日期格式化为长
- Javascript decodeURI(组件)格式错误的uri异常