มีการใช้โปรแกรมแยกวิเคราะห์ CSV ที่ดีและฟรีภายใต้ใบอนุญาตแบบเสรีหรือไม่ บางคู่ของSuperCSVสำหรับ Java บางทีพอร์ต?
คำตอบ:
FileHelpers เปิดห้องสมุดแหล่งที่มา
CodeProjectมีการใช้งานที่ดี:
ในการให้รายละเอียดเพิ่มเติมเกี่ยวกับตัวเลขโลกด้วยไฟล์ CSV ขนาด 45 MB ที่มี 145 ช่องและ 50,000 ระเบียนผู้อ่านกำลังประมวลผลประมาณ 30 MB / วินาที สรุปแล้วใช้เวลา 1.5 วินาที! สเปกเครื่องคือ P4 3.0 GHz, 1024 MB
Microsoft.VisualBasic.FileIO.TextFieldParse
แล้วได้เคล็ดลับ
คุณสามารถโหลดไฟล์ CSV ไปยัง DataTable
โค้ดตัวอย่าง -
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;
}
ตรวจสอบให้แน่ใจว่าคุณได้รวบรวมโปรเจ็กต์ของคุณกับโปรเซสเซอร์ x86 มันใช้ไม่ได้กับ x64
ลองfilehelpersทำงานได้ดีอย่างน่าอัศจรรย์ ฉันใช้มันเพื่อแยกวิเคราะห์ไฟล์ 100 MB ทุกวัน
คุณได้ลองใช้ไลบรารี FileHelpers แล้วหรือยัง? เป็นโอเพนซอร์สฟรีและสามารถใช้เพื่อแยกวิเคราะห์ไฟล์ CSV
ผมได้เริ่มต้นใช้ CSV Parser ว่าเป็นส่วนหนึ่งของCommonLibrary.NET
มันใช้. NET 3.5 มี API ที่ง่ายและโอเวอร์โหลด / วิธีการที่สะดวกและ lamda สำหรับการทำซ้ำ
ฉันไม่มีเกณฑ์มาตรฐานสำหรับสิ่งนี้เหมือนข้างต้น แต่สิ่งที่ดีเกี่ยวกับสิ่งนี้คือมันเป็นเพียงส่วนประกอบหนึ่งของไลบรารีที่คล้ายกับ Java Commons ดังนั้นฉันจึงได้รับตัวแยกวิเคราะห์บรรทัดคำสั่งการใช้งานพื้นที่เก็บข้อมูลเหนือสิ่งอื่นใด