có triển khai tốt và miễn phí trình phân tích cú pháp CSV theo một số giấy phép tự do không? Một số đối tác của SuperCSV dành cho Java, có lẽ là một cổng?
có triển khai tốt và miễn phí trình phân tích cú pháp CSV theo một số giấy phép tự do không? Một số đối tác của SuperCSV dành cho Java, có lẽ là một cổng?
Câu trả lời:
Có một triển khai tuyệt vời trên CodeProject :
Để cung cấp thêm cho các con số trái đất, với tệp CSV 45 MB chứa 145 trường và 50.000 bản ghi, trình đọc đang xử lý khoảng 30 MB / giây. Vì vậy, tất cả, nó mất 1,5 giây! Thông số của máy là P4 3.0 GHz, 1024 MB.
Microsoft.VisualBasic.FileIO.TextFieldParse
và nó đã thành công.
Bạn có thể tải tệp CSV vào DataTable.
Mã mẫu -
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;
}
Đảm bảo rằng bạn biên dịch dự án của mình sang bộ xử lý x86. Nó không hoạt động cho x64.
thử filehelpers Hoạt động tốt đáng kinh ngạc. Tôi đang sử dụng nó để phân tích cú pháp tệp 100 MB mỗi ngày.
Bạn đã thử thư viện FileHelpers chưa? Nó miễn phí, mã nguồn mở và có thể được sử dụng để phân tích cú pháp các tệp CSV.
Tôi đã bắt đầu sử dụng Trình phân tích cú pháp CSV là một phần của CommonLibrary.NET .
Nó sử dụng .NET 3.5, có một API dễ dàng và quá tải / phương thức & lamda thuận tiện cho các lần lặp lại.
Tôi không có bất kỳ điểm chuẩn nào cho cái này như ở trên, nhưng điều thú vị là nó chỉ là một thành phần của thư viện tương tự như Java Commons. Vì vậy, tôi cũng nhận được một trình phân tích cú pháp dòng lệnh, triển khai Kho lưu trữ trong số những thứ khác.