如何解决Ag grid exportDataAsExcel运行导出到xml而不是xlsx
我添加了上下文菜单,然后将导出重新分配给csv和Excel-我需要在某些列上使用valueFormatter进行导出。
导出工作正常,但是在运行导出到xml,然后运行导出到Excel之后-我得到了xml文件。
仅在这里发生-因为我使用的是getContextMenuItems。其他表使用标准上下文菜单也可以正常工作。
菜单:
getContextMenuItems = (() => {
const self = this;
return (param) => {
const menu = [
'copy','copyWithHeaders','paste','separator',{
name: 'Export',subMenu: [
{
name: 'csvExport',action: () => {
self.gridApi.exportDataAsCsv({
processCellCallback: (params) => {
if (params.column.getColDef().valueFormatter) {
const valueFormatterParams: ValueFormatterParams = {
...params,data: params.node.data,// tslint:disable-next-line:no-non-null-assertion
node: params.node!,colDef: params.column.getColDef()
};
return params.column.getColDef().valueFormatter(valueFormatterParams);
}
return params.value;
},});
}
},{
name: 'excelExport',action: () => {
self.gridApi.exportDataAsExcel({
processCellCallback: (params) => {
if (params.column.getColDef().valueFormatter) {
const valueFormatterParams: ValueFormatterParams = {
...params,'excelXmlExport'
]
}
];
return menu;
};
})();
例如:https://plnkr.co/edit/ysaS5IJzOwvVacRb
- 运行导出到Excel(格式)-获取xlsx
- 运行导出到xml-获取xml
- 运行导出到Excel(格式化)-获取xml而不是xlsx
解决方法
在自定义的Excel导出中,必须定义exportMode
属性。明确定义此属性的原因是,AG Grid使用相同的方法来导出这两种类型,并且exportMode
在这里起着至关重要的作用。如果未定义导出模式,则AG Grid将使用this.getExportMode()
来给出最后使用的exportMode
(在您的情况下为XML)。
这是AG Grid实现导出功能的方式。
case 'excelExport':
return {
name: localeTextFunc('excelExport','Excel Export (.xlsx)‎'),action: function () { return _this.gridApi.exportDataAsExcel({
exportMode: 'xlsx'
}); }
};
case 'excelXmlExport':
return {
name: localeTextFunc('excelXmlExport','Excel Export (.xml)‎'),action: function () { return _this.gridApi.exportDataAsExcel({
exportMode: 'xml'
}); }
};
将代码更改为此,它应该可以工作,
self.gridApi.exportDataAsExcel({
exportMode: 'xlsx',processCellCallback: (params) => {
if (params.column.getColDef().valueFormatter) {
const valueFormatterParams: ValueFormatterParams = {
...params,data: params.node.data,// tslint:disable-next-line:no-non-null-assertion
node: params.node!,colDef: params.column.getColDef()
};
return params.column.getColDef().valueFormatter(valueFormatterParams);
}
return params.value;
},});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。