Data processing is done with R; you can do whatever you want, e.g. you
can read any files as long as you can find a package/function to do it
(read.csv() for CSV files, packages for Excel files to read Excel
files, ...). This part is orthogonal to Shiny.
What Shiny can do for you is to provide a user interface to upload the
files in the beginning (or other UI elements to provide input
options), and display results using the UI elements in the end.
Everything else in the middle depends on the power of R and you have
full freedom (in other words, that part is basically a general R
problem). I hope this is clearer now.