当前位置: 首页 > 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异步 一影响列表加载
欢迎大家留言,支持的点个赞

http://www.dtcms.com/a/165072.html

相关文章:

  • 使用模块中的`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):集成学习及随机森林
  • Ollama 安装 QWen3 及配置外网访问指南
  • Postgresql源码(144)LockRelease常规锁释放流程分析
  • 完美解决 mobile-ffmpeg Not overwriting - exiting
  • .NET平台用C#在PDF中创建可交互的表单域(Form Field)
  • 垃圾收集GC的基本理解
  • K8S Secret 快速开始
  • k8s -hpa
  • uniapp打包apk详细教程
  • [特殊字符] Spring Cloud 微服务配置统一管理:基于 Nacos 的最佳实践详解
  • 基于站点观测的中国1km土壤湿度日尺度数据集(2000-2022)