2017-01-27 2 views
0

Добрый день,Как предотвратить Gridview от экспорта данных в Excel с гиперссылками в заголовках столбцов?

Я просмотрел сеть для решения, но не нашел.

Мы написали код, который отображает результаты на Gridview с помощью кнопки, чтобы экспортировать данные в таблицу Excel.

В Gridview включен пейджинг и сортировка.

Однако проблема заключается в том, что экспортируемые данные имеют гиперссылки в заголовках столбцов.

При нажатии на любой из заголовков столбцов, возникает следующая ошибка:

Microsoft Office определил потенциальные проблемы безопасности. Чтобы защитить компьютер, щелкните только те ссылки из надежных источников ...

Есть ли способ экспортировать данные в Excel из Gridview без гиперссылок на заголовки столбцов?

+0

Начните использовать специализированную библиотеку для создания файлов Excel, например [EPPlus] (http://stackoverflow.com/documentation/epplus/drafts/98280). Все, что вы делаете сейчас, это создание HTML-страницы с расширением .xls. – VDWWD

ответ

0

Для использования файла excel необходимо использовать gridview, используя Dataset или Datatable, который использовался для заполнения gridview.

Код для этого был бы.

public void ExportDataTableToExcel(DataTable dt, string filename) 
    { 
     HttpResponse response = HttpContext.Current.Response; 

     // first let's clean up the response.object 
     response.Clear(); 
     response.Charset = ""; 

     // set the response mime type for excel 
     response.ContentType = "application/vnd.ms-excel"; 
     response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\""); 

     // create a string writer 
     using (StringWriter sw = new StringWriter()) 
     { 
      using (HtmlTextWriter htw = new HtmlTextWriter(sw)) 
      { 
       // instantiate a datagrid 
       DataGrid dg = new DataGrid(); 
       dg.DataSource = dt; 

       dg.DataBind(); 
       dg.RenderControl(htw); 
       response.Write(sw.ToString()); 
       response.End(); 
      } 
     } 

    } 

Все, что вам нужно сделать, это создать класс с помощью данной функции и в коде вашей страницы сделать это объект и вызвать эту функцию с DataTable и имя файла.

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

  • Нет связанных вопросов^_^