The outer object has properties name, id, age, and company. The company property is another object with properties name and location.
var table = jexcel(document.getElementById('spreadsheet'), {
data:[
{ name:'Jorge', id:'3', age:'40',company:{name:'nokia',location:'us'} },
{ name:'Robert', id:'4', age:'48',company:{name:'nokia',location:'us'} },
{ name:'Santos', id:'5', age:'32',company:{name:'nokia',location:'us'} },
],
columns: [
{ type:'text', width:300, name:'id', title:'id' },
{ type:'text', width:100, name:'name', title:'name' },
{ type:'text', width:100, name:'age', title:'age' },
{ type:'text', width:100, data:'company.name', title:'company name' },
{ type:'text', width:100, data:'company.location', title:'company location' },
]
});
and the result table looks like this:
An example of this issue here: https://jsfiddle.net/sridharnetha/vf0tknxb/2/