2015-08-03 2 views
0

Я хочу экспортировать большую таблицу SQL Server (около 1 миллиона строк) в Excel с помощью vb.net.Экспорт большой таблицы SQL Server в Excel с помощью vb.net

Я не могу даже сохранить его в виде данных, я получаю исключение из памяти.

Каков наилучший способ экспорта таблицы в (xls, xlsx) формате за меньшее время?

+1

Не уверен с VB. Я даже не уверен, что excel может обрабатывать миллион записей без использования powerquery. –

+0

Excel имеет ограничение строки в 1 миллион строк. Вы можете создать файл excel с большим количеством строк, но вы не можете использовать Excel или такие функции, как OLE (которые зависят от библиотек Excel), чтобы создавать или открывать его. Похоже, вы правы на этом пределе, и любая таблица такого размера также, вероятно, растет. –

+0

Привет, спасибо за ваши предложения. Я попытаюсь сохранить записи ниже 1 миллиона, поскольку я хочу экспортировать их в файл excel. Но любые идеи делать экспортные записи в excel? – user3831888

ответ

0

Вы можете добавить объект QueryTables в excel с подключением OLEDB или ODBC к вашей таблице SQL-сервера.

Вы также можете использовать библиотеку Epplus из codeproject для создания пакета excel без установки excel и LoadFromReader или LoadFromCollection (не подлежащих обработке данных). то есть: Ниже код содержит 1 миллион строк данных (только с двумя полями) - код находится на C#, но легко конвертируется в VB.Net):

void Main() 
{ 
    ExcelPackage pck = new ExcelPackage(); 

    var collection = Enumerable.Range(1,1000000) 
        .Select (e => new {Id=e, Name="Name#"+e}); 

    var wsEnum = pck.Workbook.Worksheets.Add("FromAnonymous"); 

    //Load the collection starting from cell A1... 
    wsEnum.Cells["A1"].LoadFromCollection(collection, true, TableStyles.Medium9); 
    //...and save 

    var fi = new FileInfo(@"d:\temp\AnonymousCollection.xlsx"); 
    if (fi.Exists) 
    { 
     fi.Delete(); 
    } 
    pck.SaveAs(fi); 
} 
Смежные вопросы