Я знаю, что вы просили OleDb, но я хотел бы поделиться своим опытом с пакетом EPPlus . Я был удивлен, как быстро это. Ниже приведен мой тестовый пример:
Инициализация списка
static void Main()
{
var random = new Random();
var list = new List<Info>();
for (int i = 0; i < 100000; i++)
{
list.Add(new Info() { prop1 = random.Next().ToString(),
prop2 = random.Next().ToString(),
prop3 = random.Next().ToString() });
}
SaveListToExcel(@"D:\5.xlsx", list);
}
Сохранение списка
private static void SaveListToExcel(string filePath, IEnumerable<Info> list)
{
System.IO.FileInfo f = new System.IO.FileInfo(filePath);
if (f.Exists) f.Delete();
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using (ExcelPackage ep = new ExcelPackage(f))
{
ExcelWorksheet sheet = ep.Workbook.Worksheets.Add("Rock");
sheet.Cells[1, 1].Value = "Имя"; ;
sheet.Cells[1, 2].Value = "Фамилия";
sheet.Cells[1, 3].Value = "Отчество";
sheet.Cells[2, 1].LoadFromCollection(list);
ep.Save();
}
}
Информация класс
public class Info
{
public string prop1 { get; set; }
public string prop2 { get; set; }
public string prop3 { get; set; }
}