According to MSDN DataTable Class
"The maximum number of rows that a DataTable can store is 16,777,216", surprisingly, the page is not showing limitations in terms of MBs. There are issues addressed in MSDN Out of Memory Exception.
If you are running under Windows, its quick and safe to serialize the data to a file of any kind you choose and then use the generated file as input for each of your 3 formats. Writing to a file is much more safer and can allow you to restart the application in case it fails during one of the generations. It would also allow you to run the generation of your 3 formats in parallel, hence making the application much faster and more reliably.
The save-to-file approach is reliable and is used in Data Mart projects all over the planet.