If you use the example in the following link I believe you when you say it is very slow.
http://www.dotnetspider.com/resources/28359-Export-DataGridView-into-csv-file.aspx[
^]
The reason for the code to be slow is the fact that it concatenates strings over and over again. (eg.
strExport += dc.Name + " ";
) Because strings are immutable in .NET it will create a completely new string every time you append something to the string. A new string is initialized and will copy the contents you got so far into it with the new string added to it. With the code in the above link there will be a lot of data moving around in memory.
To make the code faster you can use the StringBuilder (examples:
http://www.dotnetperls.com/stringbuilder-vbnet[
^]) or simply open the StreamReader and write out everything immediately instead of first storing it all in memory. You can use Write for each row value and a WriteLine when done with a complete row. Your export will go extremely fast this way.
Good luck!