Câu trả lời:
Hãy thử CsvHelper . Nó dễ sử dụng như FastCsvReader và cũng có thể viết. Tôi đã rất hài lòng với FastCsvReader trong quá khứ, nhưng tôi cần một cái gì đó cũng có thể viết và không hài lòng với FileHelpers.
Đọc hiểu:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
Viết:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
Tiết lộ đầy đủ: Tôi là tác giả của thư viện này.
WriteField
. Kiểm tra tài liệu tại đây joshclose.github.io/CsvHelper
CsvHelper
. Có lẽ nó có thể cung cấp một số chiến lược đọc thay thế ngay tại chỗ? Tôi đã xóa nhận xét ban đầu của tôi bằng cách này, như nó bây giờ không thích hợp :-)
Có một số tùy chọn, ngay trong chính khuôn khổ.
Một trong những cách dễ nhất là tham khảo Microsoft.VisualBasic, sau đó sử dụng TextFieldParser . Nó là một trình đọc CSV đầy đủ chức năng trong khuôn khổ cốt lõi.
Một giải pháp thay thế tốt khác là sử dụng bộ dữ liệu để đọc tệp CSV .
Sebastien Lorion có một CSV
trình đọc tuyệt vời trên CodeProject có tên là A Fast CSV Reader . Có lẽ là một trong những thứ tốt nhất cho C # và nó miễn phí.
Theo như cách viết, chỉ cần sử dụng StreamWriter
.
Đây là một số mã soạn sẵn để ghi DataGridView
vào một tệp:
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();
}
};
}
}
Có - mặc dù tôi cho rằng bạn đang thực sự hỏi chi tiết?
Dùng thử FileHelpers
Có hàng chục.
http://www.filehelpers.net/ là một trong những trang phổ biến nhất.
Tôi nên nói rằng tôi thấy Trình trợ giúp tệp có hạn chế trong một số trường hợp và thay vào đó, hãy sử dụng Trình đọc CSV nhanh . Theo kinh nghiệm của tôi, nếu bạn không biết định dạng tệp CSV của mình hoặc ánh xạ nhập cho đến thời gian chạy - thì đây là thư viện tốt hơn để sử dụng.
.net csv library
. Bằng chứng, mặc dù chỉ là giai thoại, cho khẳng định của tôi là câu hỏi này đã được xem hơn 22000 lần trong sáu năm qua.