2014-12-15 2 views
0

общественного асинхронной Task GetImage() { Microsoft.Office.Interop.Excel Добавление клеток происходит очень медленно

  excelApp.Application app = new excelApp.Application(); 

     excelApp.Workbook wb = app.Workbooks.Add(excelApp.XlWBATemplate.xlWBATWorksheet); 

     excelApp.Worksheet ws = (excelApp.Worksheet) wb.Worksheets.get_Item(1); 

     for (int i = 0; i < 21000; i++) 
     { 
      for (int j = 0; j < 8; j++) 
      { 

       excelApp.Range aRange = ws.Cells[i + 2,j+1]; 

       aRange.Value2 = i + j; 

      } 
     } 

     wb.SaveAs("d:\\example2.xlsx"); 

     wb.Close();  } 

Мне нужно создать файл XLSX без открытия первенствовать .. что для работы очень медленно .. Что Я делаю неправильно?

+0

Вы читаете 168000 ячеек и записываете столько. Это займет время через interop. – CodeCaster

+0

И что я могу сделать, чтобы решить мою проблему .. спасибо –

ответ

0

Чтобы создать файл Excel из вашего .NET-кода, вы можете использовать библиотеку, такую ​​как CloseXML (https://closedxml.codeplex.com/), которая напрямую работает с основным файловым форматом.

Смежные вопросы