Excel notes/comments can be added to exported cells using a callback, exported automatically from the Notes feature, or attached to custom content rows.
Adding Notes to Cells Copy Link
Use processNoteCallback to inject notes during export. The callback is invoked for each exported cell and receives the cell value, column, and row node. Return an ExcelNote object to attach a note, undefined to keep the default behaviour, or null to suppress the note for the current cell.
If a note does not specify an author, the Excel document author is used. When the document author is not provided, the exporter falls back to AG Grid.
"use client";
import React, {
useCallback,
useMemo,
useRef,
useState,
StrictMode,
} from "react";
import { createRoot } from "react-dom/client";
import { AgGridReact, AgGridProvider } from "ag-grid-react";
import "./styles.css";
import {
ClientSideRowModelModule,
ColDef,
ColGroupDef,
ExcelExportParams,
GridApi,
GridOptions,
ModuleRegistry,
enableDevValidations,
} from "ag-grid-community";
import { ContextMenuModule, ExcelExportModule } from "ag-grid-enterprise";
import { OlympicWinner } from "./interfaces";
if (process.env.NODE_ENV !== "production") {
// Enable extended validations only for development
enableDevValidations();
}
const modules = [
ClientSideRowModelModule,
ContextMenuModule,
ExcelExportModule,
];
const GridExample = () => {
const gridRef = useRef<AgGridReact<OlympicWinner>>(null);
const containerStyle = useMemo(() => ({ width: "100%", height: "100%" }), []);
const gridStyle = useMemo(() => ({ height: "100%", width: "100%" }), []);
const [rowData, setRowData] = useState<OlympicWinner[]>([
{
athlete: "Michael Phelps",
country: "United States",
year: 2008,
sport: "Swimming",
gold: 8,
},
{
athlete: "Usain Bolt",
country: "Jamaica",
year: 2008,
sport: "Athletics",
gold: 3,
},
{
athlete: "Simone Biles",
country: "United States",
year: 2016,
sport: "Gymnastics",
gold: 4,
},
{
athlete: "Katie Ledecky",
country: "United States",
year: 2016,
sport: "Swimming",
gold: 4,
},
]);
const [columnDefs, setColumnDefs] = useState<ColDef[]>([
{ field: "athlete", minWidth: 180 },
{ field: "country", minWidth: 180 },
{ field: "year", maxWidth: 120 },
{ field: "sport", minWidth: 160 },
{ field: "gold", maxWidth: 120 },
]);
const defaultColDef = useMemo<ColDef>(() => {
return {
flex: 1,
minWidth: 120,
};
}, []);
const defaultExcelExportParams = useMemo<ExcelExportParams>(() => {
return {
author: "Export Bot",
processNoteCallback: (params) => {
if (params.column.getColId() === "gold" && Number(params.value) >= 5) {
return {
text: `Outstanding medal count (${params.value} gold). Flag for performance review.`,
author: "Review Team",
};
}
return undefined;
},
};
}, []);
const onBtExport = useCallback(() => {
gridRef.current!.api.exportDataAsExcel();
}, []);
return (
<AgGridProvider modules={modules}>
<div style={containerStyle}>
<div className="container">
<div className="controls">
<button onClick={onBtExport}>Export</button>
</div>
<div className="grid-wrapper">
<div style={gridStyle}>
<AgGridReact<OlympicWinner>
ref={gridRef}
rowData={rowData}
columnDefs={columnDefs}
defaultColDef={defaultColDef}
defaultExcelExportParams={defaultExcelExportParams}
/>
</div>
</div>
</div>
</div>
</AgGridProvider>
);
};
const root = createRoot(document.getElementById("root")!);
root.render(
<StrictMode>
<GridExample />
</StrictMode>,
);
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.controls {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 12px;
}
.controls > button {
font-weight: 600;
}
.grid-wrapper {
display: flex;
flex: 1 1 0;
}
.grid-wrapper > div {
width: 100%;
height: 100%;
}
const defaultExcelExportParams = useMemo(() => {
return {
processNoteCallback: (params) => {
if (params.column.getColId() === 'gold' && Number(params.value) >= 5) {
return {
text: `Outstanding medal count (${params.value} gold).`,
};
}
},
};
}, []);
<AgGridReact defaultExcelExportParams={defaultExcelExportParams} /> Exporting Grid Notes Copy Link
When the Notes feature is enabled and notesDataSource is configured, cell notes are exported automatically as Excel notes/comments. No callback is needed.
"use client";
import React, {
useCallback,
useMemo,
useRef,
useState,
StrictMode,
} from "react";
import { createRoot } from "react-dom/client";
import { AgGridReact, AgGridProvider } from "ag-grid-react";
import "./styles.css";
import {
ClientSideRowModelModule,
ColDef,
ColGroupDef,
ExcelExportParams,
FullWidthNotesDataSource,
GetRowIdFunc,
GetRowIdParams,
GridApi,
GridOptions,
ModuleRegistry,
Note,
NotesDataSource,
NotesDataSourceGetNoteParams,
NotesDataSourceSetNoteParams,
enableDevValidations,
} from "ag-grid-community";
import {
ContextMenuModule,
ExcelExportModule,
NotesModule,
} from "ag-grid-enterprise";
import { OlympicWinner } from "./interfaces";
if (process.env.NODE_ENV !== "production") {
// Enable extended validations only for development
enableDevValidations();
}
const modules = [
ClientSideRowModelModule,
ContextMenuModule,
ExcelExportModule,
NotesModule,
];
const getNoteKey = (rowId: string, colId: string) => `${rowId}::${colId}`;
const noteStore = new Map<string, Note>([
[
getNoteKey("1", "athlete"),
{
text: "Confirm the athlete biography before publishing the desk report.",
author: "Maya",
updatedAt: "29 Mar 2026, 09:15",
},
],
[
getNoteKey("3", "country"),
{
text: "Check the latest federation naming guidance for this country.",
updatedAt: "27 Mar 2026, 14:30",
},
],
]);
const GridExample = () => {
const gridRef = useRef<AgGridReact<OlympicWinner>>(null);
const containerStyle = useMemo(() => ({ width: "100%", height: "100%" }), []);
const gridStyle = useMemo(() => ({ height: "100%", width: "100%" }), []);
const [rowData, setRowData] = useState<OlympicWinner[]>([
{
id: "1",
athlete: "Michael Phelps",
country: "United States",
year: 2008,
sport: "Swimming",
gold: 8,
},
{
id: "2",
athlete: "Usain Bolt",
country: "Jamaica",
year: 2008,
sport: "Athletics",
gold: 3,
},
{
id: "3",
athlete: "Simone Biles",
country: "United States",
year: 2016,
sport: "Gymnastics",
gold: 4,
},
{
id: "4",
athlete: "Katie Ledecky",
country: "United States",
year: 2016,
sport: "Swimming",
gold: 4,
},
]);
const notesDataSource = useMemo<
NotesDataSource | FullWidthNotesDataSource
>(() => {
return {
getNote: (params: NotesDataSourceGetNoteParams) =>
noteStore.get(getNoteKey(params.rowNode.id!, params.column.getColId())),
setNote: (params: NotesDataSourceSetNoteParams) => {
const key = getNoteKey(params.rowNode.id!, params.column.getColId());
if (params.note === undefined) {
noteStore.delete(key);
} else {
noteStore.set(key, params.note);
}
},
};
}, []);
const [columnDefs, setColumnDefs] = useState<ColDef[]>([
{ field: "athlete", minWidth: 180 },
{ field: "country", minWidth: 180 },
{ field: "year", maxWidth: 120 },
{ field: "sport", minWidth: 160 },
{ field: "gold", maxWidth: 120 },
]);
const getRowId = useCallback(
({ data }: GetRowIdParams<OlympicWinner>) => data.id,
[],
);
const defaultColDef = useMemo<ColDef>(() => {
return {
flex: 1,
minWidth: 120,
};
}, []);
const defaultExcelExportParams = useMemo<ExcelExportParams>(() => {
return {
author: "Portfolio Ops",
};
}, []);
const onBtExport = useCallback(() => {
gridRef.current!.api.exportDataAsExcel();
}, []);
return (
<AgGridProvider modules={modules}>
<div style={containerStyle}>
<div className="container">
<div className="controls">
<button onClick={onBtExport}>Export</button>
</div>
<div className="grid-wrapper">
<div style={gridStyle}>
<AgGridReact<OlympicWinner>
ref={gridRef}
rowData={rowData}
notesDataSource={notesDataSource}
columnDefs={columnDefs}
getRowId={getRowId}
defaultColDef={defaultColDef}
defaultExcelExportParams={defaultExcelExportParams}
/>
</div>
</div>
</div>
</div>
</AgGridProvider>
);
};
const root = createRoot(document.getElementById("root")!);
root.render(
<StrictMode>
<GridExample />
</StrictMode>,
);
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.controls {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 12px;
}
.controls > button {
font-weight: 600;
}
.grid-wrapper {
display: flex;
flex: 1 1 0;
}
.grid-wrapper > div {
width: 100%;
height: 100%;
}
Suppressing Grid Notes Copy Link
Set suppressGridNotesExport to true to prevent grid notes from being included in the export. The grid still displays notes, but the exported file will not contain them. Callback-based note injection via processNoteCallback still works when this is set.
"use client";
import React, {
useCallback,
useMemo,
useRef,
useState,
StrictMode,
} from "react";
import { createRoot } from "react-dom/client";
import { AgGridReact, AgGridProvider } from "ag-grid-react";
import "./styles.css";
import {
ClientSideRowModelModule,
ColDef,
ColGroupDef,
ExcelExportParams,
FullWidthNotesDataSource,
GetRowIdFunc,
GetRowIdParams,
GridApi,
GridOptions,
ModuleRegistry,
Note,
NotesDataSource,
NotesDataSourceGetNoteParams,
NotesDataSourceSetNoteParams,
enableDevValidations,
} from "ag-grid-community";
import {
ContextMenuModule,
ExcelExportModule,
NotesModule,
} from "ag-grid-enterprise";
import { OlympicWinner } from "./interfaces";
if (process.env.NODE_ENV !== "production") {
// Enable extended validations only for development
enableDevValidations();
}
const modules = [
ClientSideRowModelModule,
ContextMenuModule,
ExcelExportModule,
NotesModule,
];
const getNoteKey = (rowId: string, colId: string) => `${rowId}::${colId}`;
const noteStore = new Map<string, Note>([
[
getNoteKey("1", "athlete"),
{
text: "Confirm the athlete biography before publishing the desk report.",
author: "Maya",
updatedAt: "29 Mar 2026, 09:15",
},
],
[
getNoteKey("3", "country"),
{
text: "Check the latest federation naming guidance for this country.",
updatedAt: "27 Mar 2026, 14:30",
},
],
]);
const GridExample = () => {
const gridRef = useRef<AgGridReact<OlympicWinner>>(null);
const containerStyle = useMemo(() => ({ width: "100%", height: "100%" }), []);
const gridStyle = useMemo(() => ({ height: "100%", width: "100%" }), []);
const [rowData, setRowData] = useState<OlympicWinner[]>([
{
id: "1",
athlete: "Michael Phelps",
country: "United States",
year: 2008,
sport: "Swimming",
gold: 8,
},
{
id: "2",
athlete: "Usain Bolt",
country: "Jamaica",
year: 2008,
sport: "Athletics",
gold: 3,
},
{
id: "3",
athlete: "Simone Biles",
country: "United States",
year: 2016,
sport: "Gymnastics",
gold: 4,
},
{
id: "4",
athlete: "Katie Ledecky",
country: "United States",
year: 2016,
sport: "Swimming",
gold: 4,
},
]);
const notesDataSource = useMemo<
NotesDataSource | FullWidthNotesDataSource
>(() => {
return {
getNote: (params: NotesDataSourceGetNoteParams) =>
noteStore.get(getNoteKey(params.rowNode.id!, params.column.getColId())),
setNote: (params: NotesDataSourceSetNoteParams) => {
const key = getNoteKey(params.rowNode.id!, params.column.getColId());
if (params.note === undefined) {
noteStore.delete(key);
} else {
noteStore.set(key, params.note);
}
},
};
}, []);
const [columnDefs, setColumnDefs] = useState<ColDef[]>([
{ field: "athlete", minWidth: 180 },
{ field: "country", minWidth: 180 },
{ field: "year", maxWidth: 120 },
{ field: "sport", minWidth: 160 },
{ field: "gold", maxWidth: 120 },
]);
const getRowId = useCallback(
({ data }: GetRowIdParams<OlympicWinner>) => data.id,
[],
);
const defaultColDef = useMemo<ColDef>(() => {
return {
flex: 1,
minWidth: 120,
};
}, []);
const defaultExcelExportParams = useMemo<ExcelExportParams>(() => {
return {
author: "Portfolio Ops",
suppressGridNotesExport: true,
};
}, []);
const onBtExport = useCallback(() => {
gridRef.current!.api.exportDataAsExcel();
}, []);
return (
<AgGridProvider modules={modules}>
<div style={containerStyle}>
<div className="container">
<div className="controls">
<button onClick={onBtExport}>Export</button>
</div>
<div className="grid-wrapper">
<div style={gridStyle}>
<AgGridReact<OlympicWinner>
ref={gridRef}
rowData={rowData}
notesDataSource={notesDataSource}
columnDefs={columnDefs}
getRowId={getRowId}
defaultColDef={defaultColDef}
defaultExcelExportParams={defaultExcelExportParams}
/>
</div>
</div>
</div>
</div>
</AgGridProvider>
);
};
const root = createRoot(document.getElementById("root")!);
root.render(
<StrictMode>
<GridExample />
</StrictMode>,
);
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.controls {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 12px;
}
.controls > button {
font-weight: 600;
}
.grid-wrapper {
display: flex;
flex: 1 1 0;
}
.grid-wrapper > div {
width: 100%;
height: 100%;
}
const defaultExcelExportParams = useMemo(() => {
return {
suppressGridNotesExport: true,
};
}, []);
<AgGridReact defaultExcelExportParams={defaultExcelExportParams} /> Customising Exported Notes Copy Link
The processNoteCallback can be used to customise existing grid notes before they are exported. For cells that contain grid notes the processNoteCallback provides both excelNote and gridNote.
excelNote- is the note that will be exported to ExcelgridNote- is the source grid note for this cell
The example below shows how the existing excelNote text can be updated to include the updatedAt value from the underlying gridNote.
"use client";
import React, {
useCallback,
useMemo,
useRef,
useState,
StrictMode,
} from "react";
import { createRoot } from "react-dom/client";
import { AgGridReact, AgGridProvider } from "ag-grid-react";
import "./styles.css";
import {
ClientSideRowModelModule,
ColDef,
ColGroupDef,
ExcelExportParams,
FullWidthNotesDataSource,
GetRowIdFunc,
GetRowIdParams,
GridApi,
GridOptions,
ModuleRegistry,
Note,
NotesDataSource,
NotesDataSourceGetNoteParams,
NotesDataSourceSetNoteParams,
enableDevValidations,
} from "ag-grid-community";
import {
ContextMenuModule,
ExcelExportModule,
NotesModule,
} from "ag-grid-enterprise";
import { OlympicWinner } from "./interfaces";
if (process.env.NODE_ENV !== "production") {
// Enable extended validations only for development
enableDevValidations();
}
const modules = [
ClientSideRowModelModule,
ContextMenuModule,
ExcelExportModule,
NotesModule,
];
const getNoteKey = (rowId: string, colId: string) => `${rowId}::${colId}`;
const noteStore = new Map<string, Note>([
[
getNoteKey("1", "athlete"),
{
text: "Confirm the athlete biography before publishing the desk report.",
author: "Maya",
updatedAt: "29 Mar 2026, 09:15",
},
],
[
getNoteKey("3", "country"),
{
text: "Check the latest federation naming guidance for this country.",
updatedAt: "27 Mar 2026, 14:30",
},
],
]);
const GridExample = () => {
const gridRef = useRef<AgGridReact<OlympicWinner>>(null);
const containerStyle = useMemo(() => ({ width: "100%", height: "100%" }), []);
const gridStyle = useMemo(() => ({ height: "100%", width: "100%" }), []);
const [rowData, setRowData] = useState<OlympicWinner[]>([
{
id: "1",
athlete: "Michael Phelps",
country: "United States",
year: 2008,
sport: "Swimming",
gold: 8,
},
{
id: "2",
athlete: "Usain Bolt",
country: "Jamaica",
year: 2008,
sport: "Athletics",
gold: 3,
},
{
id: "3",
athlete: "Simone Biles",
country: "United States",
year: 2016,
sport: "Gymnastics",
gold: 4,
},
{
id: "4",
athlete: "Katie Ledecky",
country: "United States",
year: 2016,
sport: "Swimming",
gold: 4,
},
]);
const notesDataSource = useMemo<
NotesDataSource | FullWidthNotesDataSource
>(() => {
return {
getNote: (params: NotesDataSourceGetNoteParams) =>
noteStore.get(getNoteKey(params.rowNode.id!, params.column.getColId())),
setNote: (params: NotesDataSourceSetNoteParams) => {
const key = getNoteKey(params.rowNode.id!, params.column.getColId());
if (params.note === undefined) {
noteStore.delete(key);
} else {
noteStore.set(key, params.note);
}
},
};
}, []);
const [columnDefs, setColumnDefs] = useState<ColDef[]>([
{ field: "athlete", minWidth: 180 },
{ field: "country", minWidth: 180 },
{ field: "year", maxWidth: 120 },
{ field: "sport", minWidth: 160 },
{ field: "gold", maxWidth: 120 },
]);
const getRowId = useCallback(
({ data }: GetRowIdParams<OlympicWinner>) => data.id,
[],
);
const defaultColDef = useMemo<ColDef>(() => {
return {
flex: 1,
minWidth: 120,
};
}, []);
const defaultExcelExportParams = useMemo<ExcelExportParams>(() => {
return {
author: "Portfolio Ops",
processNoteCallback: (params) => {
if (params.excelNote) {
return {
...params.excelNote,
text: `${params.excelNote.text}\n\nUpdated: ${params.gridNote?.updatedAt ?? "Not recorded"}`,
};
}
// Export a note to Excel for which there is not an existing gridNote
if (params.column.getColId() === "gold" && Number(params.value) >= 8) {
return {
text: "Flag this medal count for the performance review pack.",
};
}
},
};
}, []);
const onBtExport = useCallback(() => {
gridRef.current!.api.exportDataAsExcel();
}, []);
return (
<AgGridProvider modules={modules}>
<div style={containerStyle}>
<div className="container">
<div className="controls">
<button onClick={onBtExport}>Export</button>
</div>
<div className="grid-wrapper">
<div style={gridStyle}>
<AgGridReact<OlympicWinner>
ref={gridRef}
rowData={rowData}
notesDataSource={notesDataSource}
columnDefs={columnDefs}
getRowId={getRowId}
defaultColDef={defaultColDef}
defaultExcelExportParams={defaultExcelExportParams}
/>
</div>
</div>
</div>
</div>
</AgGridProvider>
);
};
const root = createRoot(document.getElementById("root")!);
root.render(
<StrictMode>
<GridExample />
</StrictMode>,
);
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.controls {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 12px;
}
.controls > button {
font-weight: 600;
}
.grid-wrapper {
display: flex;
flex: 1 1 0;
}
.grid-wrapper > div {
width: 100%;
height: 100%;
}
const notesDataSource = notesDataSource;
const defaultExcelExportParams = useMemo(() => {
return {
processNoteCallback: (params) => {
if (params.excelNote) {
return {
...params.excelNote,
text: `${params.excelNote.text}\n\nUpdated: ${params.gridNote?.updatedAt ?? 'Not recorded'}`,
};
}
},
};
}, []);
<AgGridReact
notesDataSource={notesDataSource}
defaultExcelExportParams={defaultExcelExportParams}
/> Hiding Author Copy Link
By default, the author name is prepended as bold text in the Excel note body (matching Excel's native behaviour). Set suppressPrependAuthorToNotes to true to export only the note text. The author is still stored in the Excel workbook's note metadata.
const defaultExcelExportParams = useMemo(() => {
return {
author: 'Portfolio Ops',
suppressPrependAuthorToNotes: true,
};
}, []);
<AgGridReact defaultExcelExportParams={defaultExcelExportParams} /> Adding Notes to Extra Content Copy Link
Cells in extra content rows can carry Excel notes via ExcelCell.note.
"use client";
import React, {
useCallback,
useMemo,
useRef,
useState,
StrictMode,
} from "react";
import { createRoot } from "react-dom/client";
import { AgGridReact, AgGridProvider } from "ag-grid-react";
import "./styles.css";
import {
ClientSideRowModelModule,
ColDef,
ColGroupDef,
ExcelExportParams,
ExcelRow,
ExcelStyle,
GridApi,
GridOptions,
ModuleRegistry,
enableDevValidations,
} from "ag-grid-community";
import { ExcelExportModule } from "ag-grid-enterprise";
import { OlympicWinner } from "./interfaces";
if (process.env.NODE_ENV !== "production") {
// Enable extended validations only for development
enableDevValidations();
}
const modules = [ClientSideRowModelModule, ExcelExportModule];
const extraContent: ExcelRow[] = [
{
cells: [
{
data: { type: "String", value: "Export Summary" },
styleId: "coverHeading",
note: {
text: "This note is added only during export through ExcelCell.note.",
},
},
],
},
{ cells: [] },
];
const GridExample = () => {
const gridRef = useRef<AgGridReact<OlympicWinner>>(null);
const containerStyle = useMemo(() => ({ width: "100%", height: "100%" }), []);
const gridStyle = useMemo(() => ({ height: "100%", width: "100%" }), []);
const [rowData, setRowData] = useState<OlympicWinner[]>([
{
athlete: "Michael Phelps",
country: "United States",
year: 2008,
sport: "Swimming",
gold: 8,
},
{
athlete: "Usain Bolt",
country: "Jamaica",
year: 2008,
sport: "Athletics",
gold: 3,
},
{
athlete: "Simone Biles",
country: "United States",
year: 2016,
sport: "Gymnastics",
gold: 4,
},
{
athlete: "Katie Ledecky",
country: "United States",
year: 2016,
sport: "Swimming",
gold: 4,
},
]);
const [columnDefs, setColumnDefs] = useState<ColDef[]>([
{ field: "athlete", minWidth: 180 },
{ field: "country", minWidth: 180 },
{ field: "year", maxWidth: 120 },
{ field: "sport", minWidth: 160 },
{ field: "gold", maxWidth: 120 },
]);
const defaultColDef = useMemo<ColDef>(() => {
return {
flex: 1,
minWidth: 120,
};
}, []);
const excelStyles = useMemo<ExcelStyle[]>(() => {
return [
{
id: "coverHeading",
font: {
bold: true,
size: 14,
},
},
];
}, []);
const defaultExcelExportParams = useMemo<ExcelExportParams>(() => {
return {
author: "Portfolio Ops",
prependContent: extraContent,
};
}, []);
const onBtExport = useCallback(() => {
gridRef.current!.api.exportDataAsExcel();
}, []);
return (
<AgGridProvider modules={modules}>
<div style={containerStyle}>
<div className="container">
<div className="controls">
<button onClick={onBtExport}>Export</button>
</div>
<div className="grid-wrapper">
<div style={gridStyle}>
<AgGridReact<OlympicWinner>
ref={gridRef}
rowData={rowData}
columnDefs={columnDefs}
defaultColDef={defaultColDef}
excelStyles={excelStyles}
defaultExcelExportParams={defaultExcelExportParams}
/>
</div>
</div>
</div>
</div>
</AgGridProvider>
);
};
const root = createRoot(document.getElementById("root")!);
root.render(
<StrictMode>
<GridExample />
</StrictMode>,
);
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.controls {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 12px;
}
.controls > button {
font-weight: 600;
}
.grid-wrapper {
display: flex;
flex: 1 1 0;
}
.grid-wrapper > div {
width: 100%;
height: 100%;
}
const defaultExcelExportParams = useMemo(() => {
return {
prependContent: [
{
cells: [
{
data: { type: 'String', value: 'Export Summary' },
note: {
text: 'This note is added only during export through ExcelCell.note.',
},
},
],
},
],
};
}, []);
<AgGridReact defaultExcelExportParams={defaultExcelExportParams} /> API Copy Link
ExcelNote Copy Link
Properties available on the ExcelNote interface.
See Notes for more information.
The body text to export in the Excel note/comment. |
Optional author name displayed in the exported Excel note. When omitted, the document author is used. |
ProcessNoteForExportParams Copy Link
Properties available on the ProcessNoteForExportParams<TData = any, TContext = any> interface.
See Notes for more information.
The grid note resolved for the current cell, when the Notes feature is available.
|
The Excel note/comment value derived from gridNote when automatic note export is enabled.
|
The raw cell value before any formatting or processing. |
The zero-based row index in the exported output, including any prepended content rows. Only populated for file export flows ( 'excel', 'csv'); omitted for clipboard flows.
|
The row node for the cell. May be null or undefined for clipboard flows when no row is associated. |
The column for the cell. |
The operation that triggered the callback |
Utility function to parse a value using the column's colDef.valueParser |
Utility function to format a value using the column's colDef.valueFormatter |
The grid api. |
Application context as set on gridOptions.context. |