Czy istnieje dobra i darmowa implementacja parsera CSV dostępna na niektórych liberalnych licencjach? Jakiś odpowiednik SuperCSV dla Javy, może port?Parser/czytnik CSV dla C#?
Odpowiedz
FileHelpers (przynajmniej dla CSV) wymaga "zdefiniowania klasy odwzorowującej rekord w źródle (plik)", "musisz zadeklarować klasę Record Mapping" itd., A to nie jest takie gorące. Chciałbym przekonwertować CSV na DataTable, nie wiedząc z góry, ile kolumn należy się spodziewać. –
Jest ładny realizacja na CodeProject:
Aby dać bardziej w dół do liczby ziemnych, z 45 MB pliku CSV zawierającym 145 pól i 50.000 rekordów, czytelnik przetwarzał około 30 MB/sek. W sumie zajęło to 1,5 sekundy! Specyfikacja maszyny to P4 3.0 GHz, 1024 MB.
(odbierając moje +1): Właśnie zepsułem program lumenworks Szybki odczyt CSV na pliku 53 MB. Wygląda na to, że buforowanie linii zakończyło się niepowodzeniem po 43 000 wierszy i zablokowało bufor. Wypróbowałem 'Microsoft.VisualBasic.FileIO.TextFieldParse' i udało się. –
spróbuj filehelpers Działa zadziwiająco dobrze. Używam go do analizowania pliku 100 MB każdego dnia.
Czy próbowałeś biblioteki FileHelpers? Jest bezpłatny, open source i może być używany do parsowania plików CSV.
zacząłem użyciu CSV Parser, który jest częścią CommonLibrary.NET.
Używa .NET 3.5, ma łatwe API i wygodne przeciążenia/metody & lamda dla iteracji.
Nie mam żadnych benchmarków dla tego jak wyżej, ale miłą rzeczą jest to, że jest to tylko jeden składnik biblioteki podobny do Javy. Dostaję też między innymi parser wiersza poleceń, implementację repozytorium.
Możesz załadować plik CSV do DataTable.
Przykładowy kod -
static DataTable CsvToDataTable(string strFileName)
{
DataTable dataTable = new DataTable("DataTable Name");
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Directory.GetCurrentDirectory() + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\""))
{
conn.Open();
string strQuery = "SELECT * FROM [" + strFileName + "]";
OleDbDataAdapter adapter =
new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
adapter.Fill(dataTable);
}
return dataTable;
}
Upewnij się skompilować projekt z procesorem x86. To nie działa na x64.
to działało całkiem dobrze, ponieważ chciałem pozostać z wbudowanymi bibliotekami ODBC lub OLEDB. Btw, poniższe ma dodatkowe próbki kodu zarówno dla OLEDB i ODBC: http://www.csvreader.com/csv_benchmarks.php – Meringros
To nie działa na 64 bit, niestety. – DenNukem
Dwa linki, które mogą być przydatne w odniesieniu do tej odpowiedzi: 1. [C# Samouczek - Korzystanie z wbudowanego parsera OLEDB CSV] (http://tech.pro/tutorial/803/csharp-tutorial-using-the-upilt- in-oledb-csv-parser) 2. [Jak odzyskać schemat kolumny za pomocą metody DataReader GetSchemaTable i Visual C# .NET] (http://support.microsoft.com/kb/310107) – shawad
- 1. Słownik C# do .csv
- 2. Alternatywa dla pliku CSV?
- 3. Restrukturyzacja danych csv dla r i ggplot2
- 4. Funkcje SlickGrid dla eksportu CSV?
- 5. Pobierz plik CSV dla CasSci
- 6. Biblioteka importu CSV dla CodeIgniter
- 7. Utwórz plik .csv w języku C#
- 8. szybki, prosty CSV podczas analizowania w C++
- 9. Objective-C - Analizowanie pliku CSV w tablicy
- 10. Przetwarzanie CSV
- 11. tablica numpy z pliku csv dla lasagne
- 12. Dodaj nagłówek do CSV bez ładowania CSV
- 13. Opcja Redis-cli --csv (eksport do csv)
- 14. Czytanie/pisanie plików rozdzielanych CSV/tabulatorami w języku C#
- 15. Używanie klasy CSV do analizy pliku .csv w Ruby
- 16. danych URI dla pliku CSV w Firefoksie nie oddanie .csv rozszerzenie
- 17. Import-CSV i Foreach
- 18. C Wrapper dla C++
- 19. Czytanie pliku .csv w php
- 20. Weka Predykcje do CSV
- 21. Konwersja pliku csv na json za pomocą C#
- 22. C# odczyt pliku CSV nie daje poprawną ścieżkę
- 23. Parsowanie CSV przy użyciu OleDb przy użyciu C#
- 24. Jak mogę sprawdzić, czy ciąg kończy się „.csv” w C
- 25. co „\”, \ x0A \ x0D”kod robi w C# podczas pisania CSV
- 26. Import/Eksport CSV z SQLite z kodu C#
- 27. Bulkloader CSV Błąd rozmiaru
- 28. Jak używać SQL do pliku CSV
- 29. Parsować pojedynczy ciąg CSV?
- 30. importu CSV do phpMyAdmin
http://stackoverflow.com/questions/3507498/reading-csv-file –
przy użyciu Microsoft.VisualBasic.FileIO.TextFieldParser; –
[Najważniejsze 6 sposobów analizowania pliku .CSV? Wysoka wydajność!] (Http://izlooite.blogspot.com/2011/06/top-6-ways-to-parse-csv-high.html) –