2022年9月19日 星期一

C# Excel to Database

使用 MiniExcel,讀取Excel資料到IEnumerable或是DataTable,再轉成SQL轉到資料庫

Github : https://github.com/shps951023/MiniExcel

例子:

1. SQLite & Dapper 讀取大數據新增到資料庫

Note : 請不要呼叫 call ToList/ToArray 等方法,這會將所有資料讀到記憶體內

using (var connection = new SQLiteConnection(connectionString))
{
    connection.Open();
    using (var transaction = connection.BeginTransaction())
    {
	   var rows = MiniExcel.Query(path);
	   foreach (var row in rows)
			 connection.Execute("insert into T (A,B) values (@A,@B)", new { row.A, row.B }, transaction: transaction);
	   transaction.Commit();
    }
}

讀取excel插入資料庫1千萬筆數據花費30秒,最大26MB記憶體

image 

資料來源: https://ithelp.ithome.com.tw/questions/10204298

沒有留言: