Esistono librerie di lettori/scrittori CSV in C#?Esistono lettori CSV/librerie di scrittori in C#?
risposta
Sì, anche se presumo che in realtà chiedi informazioni specifiche?
Prova FileHelpers
Beh, l'ho fatto ma per qualche strana ragione FileHelpers si è rotta casualmente. Inoltre, la libreria FileHelpers non è in sviluppo da molto tempo. –
FileHelpers sono attivamente sviluppati ora, vedere [GitHub] (https://github.com/MarcosMeli/FileHelpers). – xmedeko
ci sono decine.
http://www.filehelpers.net/ è uno dei più comuni.
Devo dire che trovo Filehelpers restrittivo in alcuni scenari, e invece uso The Fast CSV Reader. Nella mia esperienza, se non conosci il formato del tuo file CSV o importa il mapping fino al runtime, questa è la migliore libreria da usare.
Utilizziamo anche file helper. – Tangurena
Ho trovato FileHelpers come una seccatura da configurare. FastCsvReader era molto più facile da usare. –
+1 per FastCsvReader. Performance eccellente. Ma è principalmente un lettore/parser. Non uno scrittore. –
Sebastien Lorion ha un ottimo lettore CSV
su CodeProject denominato A Fast CSV Reader. Probabilmente uno dei migliori per C# ed è gratuito.
Per quanto riguarda la scrittura, utilizzare solo StreamWriter
.
Ecco alcuni codice standard per la scrittura di un DataGridView
in un file:
private void exportDGVToCSV(string filename)
{
if (dataGridView1.Columns.Count != 0)
{
using (Stream stream = File.OpenWrite(filename))
{
stream.SetLength(0);
using (StreamWriter writer = new StreamWriter(stream))
{
// loop through each row of our DataGridView
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string line = string.Join(",", row.Cells.Select(x => $"{x}"));
writer.WriteLine(line);
}
writer.Flush();
}
};
}
}
Ci sono un paio di opzioni, proprio nel framework stesso.
Uno dei più semplici è fare riferimento a Microsoft.VisualBasic, quindi utilizzare TextFieldParser. È un lettore CSV completamente funzionale nel framework principale.
Un'altra buona alternativa è a use datasets to read CSV files.
Mi sono sempre chiesto perché fosse nell'assembly Microsoft.VisualBasic ... Pensava che gli sviluppatori C# non usassero CSV? –
@Thomas: specialmente dal momento che molti sviluppatori di C# rabbrividiscono al pensiero di includere un assembly VisualBasic nei loro progetti –
Sì, ci sono molte belle "chicche" lì dentro. Penso che sia più importante perché VB ha alcuni costrutti linguistici che non erano realmente considerati nel framework in origine, ma non sarebbero mai stati in grado di ottenere gli utenti VB6 senza implementarli. Gli spazi dei nomi Devices e ApplicationServices hanno tutti i tipi di cose utili. –
Prova CsvHelper. È facile da usare come FastCsvReader e scrive anche. Sono stato molto felice con FastCsvReader in passato, ma avevo bisogno di qualcosa che facesse anche la scrittura, e non ero soddisfatto di FileHelpers.
lettura:
var csv = new CsvReader(stream);
var myCustomTypeList = csv.GetRecords<MyCustomType>();
scrittura:
var csv = new CsvWriter(stream);
csv.WriteRecords(myCustomTypeList);
completa Disclosure: Io sono l'autore di questa libreria.
Grazie, Josh. Ho dato questo, ed era veloce ed efficiente nella memoria. Penso che la documentazione potrebbe essere migliorata un po 'per gli utenti principianti, ma era decisamente sufficiente. – Sam
- 1. blocco che permetterà più lettori in C#
- 2. unix pipe più scrittori
- 3. Esiste un equivalente ReaderWriterLockSlim che favorisce i lettori?
- 4. Lettori di schermo e Javascript
- 5. Utilizzo di più lettori di dati
- 6. Sicurezza filo dell'elenco C# <T> per i lettori
- 7. Più scrittori, un lettore, quale collezione
- 8. Come prevenire l'inattività degli scrittori in un blocco di scrittura read in pthreads
- 9. Esistono alternative al polimorfismo in C++?
- 10. Esistono contenitori concomitanti in C++ 11?
- 11. Esistono framework/librerie P2P mature in C#?
- 12. Rilevamento di lettori lenti con zmq (zeromq)
- 13. Esistono implementazioni Websocket C# decenti?
- 14. Esistono strutture Web Objective-C?
- 15. Esistono modelli nel linguaggio di programmazione C?
- 16. Esistono buoni aggregatori di notizie C#, .net?
- 17. Objective-C: Come controllare il volume di più lettori audio in DiracLE
- 18. Esistono implementazioni di Sparse Matrix ottimizzate per l'archiviazione in C#?
- 19. Esistono implementazioni di interi interi solidi in C?
- 20. Quali framework di test delle mutazioni esistono per C/C++?
- 21. Esistono puntatori in .NET?
- 22. Couchdb - Blocco futon per utenti lettori
- 23. Esistono campi di query migliori in MongoDB
- 24. Esistono strumenti per integrare Java e C++?
- 25. Esistono eventuali debugger C# /. NET autonomi?
- 26. Esistono piattaforme moderne con formati float non IEEE C/C++?
- 27. Libreria di memoria condivisa distribuita per C++?
- 28. Esistono aggiornamenti del supporto per la localizzazione in C++ 0x?
- 29. Come ottenere un elenco di lettori multimediali installati
- 30. L'efficienza dell'utilizzo di pthread_rwlock quando ci sono molti lettori
Mi permetto di dissentire. Questa è sicuramente una domanda costruttiva e il primo risultato su google per '.net csv library'. La prova, sebbene aneddotica, per la mia tesi è che questa domanda è stata vista più di 22000 volte negli ultimi sei anni. – shovavnik
vero detto - prima hit su google – Robetto