CSV files contain your data in text with each row on its on line and each value separated by a comma hence the name Comma Separated Values. Being simple text, they are easy to naively create from any application, just fopen a text file and start spitting out data. This simplicity has a trade-off tho, as they are harder for your users to work with.
Some problems with exporting CSV files are correctly escaping the output, so that commas in the data are not confused for the commas that separate the values. Also, there can be issues with correctly encoding the Unicode strings.
Once your file is correctly exported, there are other problems to contend with, such as non technical users having difficulty just importing the file. Technical users may be able to import your raw data, and format it for use, but after doing this several times they will start wishing for a way to automate the process so they may better spend their time analysing the data instead of importing it.
Creating Excel files instead allows you to give your users a richer experience, while also reducing human error and saving time. Firstly, data can be formatted to be easier to view for the user, and one excel file can contain many tabs as opposed to having to have a CSV file per tab.
Excel files can also have charts and formulas, usually your users would have to manually create these, which can take a lot of time, especially with setting up formulas across large datasets and across many tabs.
Going the other way, your first problem is getting the user to correctly export a CSV file in the correct format. Combinations of separators, delimitation and Unicode introduce many possibilities for human error. This is all assuming your user remembers to export the file as a CSV in the first place.