Как ускорить экспорт .NET DataGrid в Excel?

Я использую следующую функцию для экспорта информации из моего DataGrid в Excel. Но когда он спрашивает меня, хочу ли я сохранить или экспортировать, это займет слишком много времени. Кто-нибудь знает, почему / кто-то получил подобный опыт?

void ExportToExcel3() { Response.Clear(); Response.AddHeader("content-disposition", "attachment;filename=FileName.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.xls"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); GridView2.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } 

Рассматривая производительность вашего решения, важно понять, что вы фактически не экспортируете DataGrid в Excel: вы на самом деле записываете его содержимое как HTML, а затем «обманываете» Windows, открывая этот HTML, используя Excel. Excel затем преобразует таблицу HTML в рабочий лист, а также может.

Узким местом здесь является, скорее всего, процесс преобразования Excel: особенно на больших таблицах, синтаксический анализ HTML – это большая работа, вовлекающая множество медленных догадок о типах данных и конверсиях. Возможно, HTML настолько громоздкий, что загрузка его с сервера на клиента также вызывает заметную задержку.

Поскольку вы не контролируете код, связанный с любым из этих узких мест, вы не можете их устранить, кроме как избежать их вообще, переключившись на более эффективный формат, то есть на встроенный Excel вместо HTML.

Есть несколько библиотек .NET, которые могут помочь вам в этом, как коммерческом, так и бесплатном . Похоже, что поисковая система Google найдет множество других альтернатив. Пожалуйста, обратите внимание, что ваш серверный код станет значительно более активным: вам нужно будет настроить структуру / форматирование электронной таблицы и выполнить цикл DataGrid для экспорта каждой строки. Но конечный результат, файл XLS, будет более компактным и эффективным для него, а также будет более полезным (то есть редактируемым) для ваших пользователей, чем ваш текущий экспорт HTML.

  • Экспортировать переменную экземпляра в виде строки
  • экспортировать массив с арабским содержимым в файл Excel php
  • Как экспортировать раздел комментариев в podio с помощью API
  • Экспорт данных из Интернета в Excel с большей производительностью
  • Значения столбцов. Настраивание. Экспорт Excel в ASP.NET.
  • Экспортировать данные электронной почты в определенные поля в файле CSV (или в файле XLS)
  • Остановка экспорта Excel в pdf
  • Экспорт CSV / XLSX с использованием Laravel 5.4
  • Экспорт данных из Excel в Word, пока функция
  • Не удается экспортировать только часть моей страницы aspx на C #
  • Каков наилучший способ создания .xls из datatable в asp .Net c #?
  • Давайте будем гением компьютера.