当前位置: 首页 > news >正文

ag-grid-react 列表导出csv列表getDataAsCsv (自定义导出列表配置)自定义新增,修改导出内容

1.ag-grid-react getDataAsCsv 新增导出字段

方法:临时添加列再导出

你可以通过 columnApi.setColumnDefs() 临时添加需要导出的字段,然后再调用 getDataAsCsv,导出后再恢复原来的列。

import { useRef } from 'react';
import { AgGridReact } from 'ag-grid-react';
import 'ag-grid-community/styles/ag-grid.css';
import 'ag-grid-community/styles/ag-theme-alpine.css';
import { cloneDeep } from 'lodash';const MyGrid = () => {const gridRef = useRef(null);const extraExportColumn = {headerName: "Hidden Info",field: "hiddenInfo",suppressColumnsToolPanel: true,hide: true, // 不在界面上显示};const rowData = [{ name: "Alice", age: 25, hiddenInfo: "Secret A" },{ name: "Bob", age: 30, hiddenInfo: "Secret B" },];const exportWithExtraField = () => {const api = gridRef.current.api;const columnApi = gridRef.current.columnApi.columnController;const originalColumnDefs = cloneDeep(columnApi.columnDefs)const updatedDefs = [...originalColumnDefs, extraExportColumn];columnApi.setColumnDefs(updatedDefs);const csv = api.getDataAsCsv();const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });// 下载const link = document.createElement("a");link.href = URL.createObjectURL(blob);link.download = "export.csv";link.click();// 恢复原始列定义columnApi.setColumnDefs(originalColumnDefs);};return (<div className="ag-theme-alpine" style={{ height: 400, width: 600 }}><button onClick={exportWithExtraField}>导出包含隐藏字段</button><AgGridReactref={gridRef}rowData={rowData}columnDefs={originalColumnDefs}/></div>);
};export default MyGrid;

api:getDataAsCsv(params) 导出列表api配置可参考官网,
columnKeys: 可配置 需要导出项,默认列表展示啥导出啥
fileName:‘sheet-1’,注意这里是页脚
processCellCallback:(params) => {} 导出单元格数据处理

https://ag-grid.com/react-data-grid/csv-export/#reference-CsvExportParams-columnKeys

核心代码columnApi.setColumnDefs ,这个api 同步的,不能用react setSate异步 一影响列表加载
欢迎大家留言,支持的点个赞

相关文章:

  • 使用模块中的`XPath`语法提取非结构化数据
  • 单体项目到微服务的架构演变与K8s发展是否会代替微服务
  • 【SpringBoot】基于mybatisPlus的博客系统
  • windows系统 压力测试技术
  • 简易APP更新功能
  • 海思正式公开了星闪BS21E的SDK
  • 【LLM】MOE混合专家大模型综述(重要模块原理)
  • 20250430在ubuntu14.04.6系统上完成编译NanoPi NEO开发板的FriendlyCore系统【严重不推荐,属于没苦硬吃】
  • ubuntu22.04出现VFS: Unable to mount root fs on unknown-block(0,0)
  • 服务容错治理框架resilience4jsentinel基础应用---微服务的限流/熔断/降级解决方案
  • Java Set<String>:如何高效判断是否包含指定字符串?
  • 数据仓库与数据湖的对比分析
  • 深度卷积模型:案例研究
  • ubuntu22.04 qemu arm64 环境搭建
  • 【黑马JavaWeb+AI知识梳理】后端Web基础01 - Maven
  • 力扣第447场周赛
  • Notepad编辑器实现换行符替换
  • golang接口和具体实现之间的类型转换
  • JConsole监控centos服务器中的springboot的服务
  • 大连理工大学选修课——机器学习笔记(7):集成学习及随机森林
  • 外交部:巴基斯坦副总理兼外长达尔5月19日至21日访华
  • 前四月国家铁路发送货物12.99亿吨,同比增长3.6%
  • 全球前瞻|特朗普19日将与俄乌总统分别通话,英国脱欧后首开英欧峰会
  • “80后”北大硕士罗婕履新甘肃宁县县委常委、组织部部长
  • A股三大股指低收:汽车股领涨,大金融走弱,两市成交近1.1万亿元
  • 刘强东坐镇京东一线:管理层培训1800人次,最注重用户体验