Multiselecting a lot of data

I need to use a component for selecting a large amount of data. My problem is we have big datasets containing data about products, users, companies, sales info, etc. And the user has to select the information he/she needs from this datasets, in a easy way, to generate a spreadsheet. My idea is to use a picklist or a multiselecting component, but I don't know how to incorporate advanced filters, so the user can easily find the information he needs. Any suggestions?

I thought something like this, but with a modern look: enter image description here

Thanks!