I've been trying to export a data from Tree Family structure which contains JSON data and a lot of arrays.
The export functionality works just fine but it is not exporting the whole thing.
This is code that I used for exporting functionality using npm-xlsx.
//excel button click functionality
exportExcel() {
import('xlsx').then((xlsx) => {
const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(this.dataSource.data);
const wb: XLSX.WorkBook = { Sheets: { data: ws }, SheetNames: ['data'] };
const excelBuffer: any = XLSX.write(wb, {
bookType: 'xlsx',
type: 'array',
});
this.saveAsExcelFile(excelBuffer, 'treeData');
});
}
saveAsExcelFile(buffer: any, fileName: string): void {
let EXCEL_TYPE =
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
let EXCEL_EXTENSION = '.xlsx';
const data: Blob = new Blob([buffer], {
type: EXCEL_TYPE,
});
saveAs(
data,
fileName + '_export_' + new Date().getTime() + EXCEL_EXTENSION
);
}
And this is the JSON data from the Tree Family structure. (this.dataSource.data)
[
{
"name": "Folder 1",
"id": 1,
"numbering": "1.0",
"children": [
{
"name": "Folder 1.1",
"id": 2,
"numbering": "1.1",
"children": [
{
"name": "Folder 1.1.1",
"id": 3,
"numbering": "1.1.1",
"children": []
},
{
"name": "File 1.1.2",
"id": 33,
"numbering": "1.1.2",
"children": [
{
"name": "Folder 1.1.2.1",
"id": 4,
"numbering": "1.1.2.1"
},
{
"name": "Folder 1.1.2.2",
"id": 5,
"numbering": "1.1.2.2"
},
{
"name": "Folder 1.1.2.3",
"id": 6,
"numbering": "1.1.2.3",
"children": [
{
"name": "Folder 1.1.2.3.1",
"id": 7,
"numbering": "1.1.2.3.1"
},
{
"name": "Folder 1.1.2.3.2",
"id": 8,
"numbering": "1.1.2.3.2"
}
]
},
{
"name": "Folder 1.1.2.4",
"id": 9,
"numbering": "1.1.2.4",
"children": [
{
"name": "Folder 1.1.2.4.1",
"id": 10,
"numbering": "1.1.2.4.1"
}
]
}
]
},
{
"name": "File 1.1.3",
"id": 11,
"numbering": "1.1.3",
"children": [
{
"name": "Folder 1.1.3.1",
"id": 12,
"numbering": "1.1.3.1",
"children": [
{
"name": "Folder 1.1.3.1.1",
"id": 13,
"numbering": "1.1.3.1.1"
},
{
"name": "Folder 1.1.3.1.2",
"id": 14,
"numbering": "1.1.3.1.2"
},
{
"name": "Folder 1.1.3.1.3",
"id": 15,
"numbering": "1.1.3.1.3"
},
{
"name": "Folder 1.1.3.1.4",
"id": 16,
"numbering": "1.1.3.1.4",
"children": [
{
"name": "Folder 1.1.3.1.5",
"id": 17,
"numbering": "1.1.3.1.5"
}
]
}
]
}
]
}
]
}
]
}
]
The result of exporting came out like this:
It did not export the whole thing. It stops at the first children data in JSON. Maybe because it contains arrays of data?