// import { saveAs } from 'file-saver';
// import * as XLSX from 'xlsx';

// interface Column {
//     title?: string;
//     dataIndex?: string;
//     children?: Column[];
// }

// interface Data {
//     [key: string]: any;
// }

// interface Props {
//     columns: Column[];
//     data: Data[];
// }

// const getHeaderRows = (columns: Column[], depth: number = 0): any => {
//     const headers: any[] = [];
//     const merges: any[] = [];
//     const traverse = (cols: Column[], depth: number) => {
//         headers[depth] = headers[depth] || [];
//         cols.forEach((col) => {
//             headers[depth].push(col.title);
//             if (col.children && col.children.length > 0) {
//                 merges.push({
//                     s: { r: depth, c: headers[depth].length - 1 },
//                     e: { r: depth, c: headers[depth].length - 1 + col.children.length - 1 },
//                 });
//                 traverse(col.children, depth + 1);
//             } else {
//                 for (let i = depth + 1; i < headers.length; i++) {
//                     headers[i].push('');
//                 }
//             }
//         });
//     };
//     traverse(columns, depth);
//     return { headers, merges };
// };

// const exportToExcel = (props: Props) => {
//     const { columns, data } = props;

//     const { headers, merges } = getHeaderRows(columns);

//     // Flatten data based on columns
//     const flattenData = (data: Data[], columns: Column[]): any[] => {
//         return data.map((row) => {
//             const flattenedRow: any[] = [];
//             const flatten = (cols: Column[], row: Data) => {
//                 cols.forEach((col) => {
//                     if (col.children && col.children.length > 0) {
//                         flatten(col.children, row);
//                     } else {
//                         flattenedRow.push(row[col.dataIndex!]);
//                     }
//                 });
//             };
//             flatten(columns, row);
//             return flattenedRow;
//         });
//     };

//     const rows = flattenData(data, columns);

//     const wsData = [...headers, ...rows];

//     // Create worksheet
//     const worksheet = XLSX.utils.aoa_to_sheet(wsData);
//     worksheet['!merges'] = merges;

//     // Create workbook and export
//     const workbook = XLSX.utils.book_new();
//     XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
//     const wbout = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });

//     saveAs(new Blob([wbout], { type: 'application/octet-stream' }), 'data.xlsx');
// };

// export default exportToExcel;
