Un file csv non è altro che un file di testo in cui i campi non sono di lunghezza fissa, ma sono delimitati.

Per la lettura si può usare la classe TextFieldParser (namespace Microsoft.VisualBasicic.FileIO) che semplifica molto la lettura.

Per la scrittura, (cito da libro), il framework 2 non offre un tipo che scrive i file di dati in formato delimitato o fisso. E questo per l'evidente motivo che è fin troppo facile, grazie al metodo String.Format, scrivere un file csv.

Come detto, l'unico problema è che tipo di separatore usare (virgola o altro), il separatore decimale, e il formato delle date