There's an [example][1] of this in the [lwc-recipes][2] repository published by salesforce.com. Your JS should look like: import { wire, LightningElement } from 'lwc'; import getAllCompanys from '@salesforce/apex/StockMarketSharesWrapper.getAllCompanys'; export default class MyLwcComponent extends LightningElement { @wire(getAllCompanys, {}) companys; columns = [{ label: 'Name', fieldName: 'Name' }, { label: 'Ticker', fieldName: 'Ticker' }] } And your HTML can look like: <template> <lightning-datatable data={companys} columns={columns} key-field="Name"> </lightning-datatable> </template> See also the [lightning-datatable][3] documentation. Edit: Your Apex is reusing the same variable, despite creating new wrappers; this is why most of your data would be blank. Wrapper w = new Wrapper(); w.Ticker = 'U'; w.Name = 'Unity Software Inc'; Wrapper w1 = new Wrapper(); w1.Ticker = 'UAL'; w1.Name = 'United Airlines Holdings, Inc.' ; Wrapper w2 = new Wrapper(); w2.Ticker ='DAOOU' ; w2.Name = 'Crypto 1 Acquisition Corp Unit'; Wrapper w3 = new Wrapper(); w3.Ticker = 'GLLIU'; w3.Name ='Globalink Investment Inc. Unit' ; [1]: https://github.com/trailheadapps/lwc-recipes/tree/main/force-app/main/default/lwc/contactList [2]: https://github.com/trailheadapps/lwc-recipes/ [3]: https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/