คำตอบ:
ลองCsvHelper ใช้งานง่ายเหมือน FastCsvReader และเขียนด้วย ฉันมีความสุขมากกับ FastCsvReader ในอดีต แต่ฉันต้องการบางสิ่งที่เขียนด้วยและไม่พอใจกับ FileHelpers
การอ่าน:
var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
การเขียน:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
การเปิดเผยข้อมูลทั้งหมด: ฉันเป็นผู้เขียนห้องสมุดนี้
WriteField
. ตรวจสอบเอกสารที่นี่joshclose.github.io/CsvHelper
CsvHelper
อย่างไรก็ตามในหน้านั้นมันไม่บอกว่าใช้การทำแผนที่ของบางชนิดเป็นวิธีที่แนะนำให้ใช้ บางทีอาจเสนอกลยุทธ์การอ่านทางเลือกในจุดนั้น? ฉันได้ลบคำพูดเดิมของฉันไปแล้วเพราะตอนนี้มันไม่เกี่ยวข้อง :-)
มีสองทางเลือกในกรอบ
หนึ่งในวิธีที่ง่ายที่สุดคือการอ้างอิง Microsoft.VisualBasic แล้วใช้TextFieldParser เป็นโปรแกรมอ่าน CSV ที่ทำงานได้อย่างสมบูรณ์ในกรอบงานหลัก
อีกทางเลือกที่ดีคือการใช้ชุดข้อมูลในการอ่านไฟล์ CSV
เซบาสเตียน Lorion ได้ดีCSV
อ่านบน CodeProject เรียกว่ารวดเร็ว CSV อ่าน อาจเป็นหนึ่งในสิ่งที่ดีที่สุดสำหรับ C # และฟรี
เท่าที่เขียนใช้แค่StreamWriter
.
นี่คือโค้ดสำเร็จรูปสำหรับเขียนDataGridView
ไฟล์:
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();
}
};
}
}
ใช่ - แม้ว่าฉันคิดว่าคุณกำลังขอข้อมูลที่เฉพาะเจาะจงจริง ๆ ?
ลองFileHelpers
มีหลายสิบตัว
http://www.filehelpers.net/เป็นส่วนใหญ่
ฉันควรจะบอกว่าฉันพบว่า Filehelpers มีข้อ จำกัด ในบางสถานการณ์และใช้โปรแกรมอ่าน Fast CSVแทน จากประสบการณ์ของฉันหากคุณไม่ทราบรูปแบบของไฟล์ CSV หรือการนำเข้าการแมปจนถึงรันไทม์นี่เป็นไลบรารีที่ดีกว่าที่จะใช้
.net csv library
สำหรับ แม้ว่าจะมีหลักฐานเพียงเล็กน้อยสำหรับการอ้างสิทธิ์ของฉันก็คือคำถามนี้มีผู้ดูมากกว่า 22000 ครั้งในช่วงหกปีที่ผ่านมา