ag-grid-react 列表导出csv列表getDataAsCsv (自界说导出列表设置)自界说新增,修改导出内容

[复制链接]
发表于 2025-9-17 20:07:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1.ag-grid-react getDataAsCsv 新增导出字段
方法:暂时添加列再导出
你可以通过 columnApi.setColumnDefs() 暂时添加需要导出的字段,然后再调用 getDataAsCsv,导出后再恢复原来的列。
  1. import { useRef } from 'react';
  2. import { AgGridReact } from 'ag-grid-react';
  3. import 'ag-grid-community/styles/ag-grid.css';
  4. import 'ag-grid-community/styles/ag-theme-alpine.css';
  5. import { cloneDeep } from 'lodash';
  6. const MyGrid = () => {
  7.   const gridRef = useRef(null);
  8.   const extraExportColumn = {
  9.     headerName: "Hidden Info",
  10.     field: "hiddenInfo",
  11.     suppressColumnsToolPanel: true,
  12.     hide: true, // 不在界面上显示
  13.   };
  14.   const rowData = [
  15.     { name: "Alice", age: 25, hiddenInfo: "Secret A" },
  16.     { name: "Bob", age: 30, hiddenInfo: "Secret B" },
  17.   ];
  18.   const exportWithExtraField = () => {
  19.     const api = gridRef.current.api;
  20.     const columnApi = gridRef.current.columnApi.columnController;
  21.     const originalColumnDefs = cloneDeep(columnApi.columnDefs)
  22.     const updatedDefs = [...originalColumnDefs, extraExportColumn];
  23.     columnApi.setColumnDefs(updatedDefs);
  24.     const csv = api.getDataAsCsv();
  25.     const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
  26.     // 下载
  27.     const link = document.createElement("a");
  28.     link.href = URL.createObjectURL(blob);
  29.     link.download = "export.csv";
  30.     link.click();
  31.     // 恢复原始列定义
  32.     columnApi.setColumnDefs(originalColumnDefs);
  33.   };
  34.   return (
  35.     <div className="ag-theme-alpine" style={{ height: 400, width: 600 }}>
  36.       <button onClick={exportWithExtraField}>导出包含隐藏字段</button>
  37.       <AgGridReact
  38.         ref={gridRef}
  39.         rowData={rowData}
  40.         columnDefs={originalColumnDefs}
  41.       />
  42.     </div>
  43.   );
  44. };
  45. 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异步 一影响列表加载
欢迎大家留言,支持的点个赞
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表