nar86 Ответов: 1

Экспорт данных gridview в excel не работает


Мой код выглядит следующим образом

охраняемых недействительными btnextract_Click(объект отправителя, EventArgs в электронной)
{
Ответ.Четкий();
Ответ.Буфер = true;
Ответ.ClearContent();
Ответ.ClearHeaders();
Ответ.Кодировка = "";
строка FileName = "Vithal" + DateTime.Теперь + ".xls";
Системы.ИО.Stringwriter не strwritter = новая система.ИО.Stringwriter не();
HtmlTextWriter htmltextwrtter = новый HtmlTextWriter(strwriter);
Ответ.Кэш.SetCacheability(HttpCacheability.NoCache);
Ответ.Значение contentType = "применение/донгов.в MS-Excel с";
Ответ.AddHeader("Content-Disposition", "attachment;filename=" + FileName);
grdRpt.GridLines = линии сетки.Оба;
grdRpt.HeaderStyle.Font.Жирный = истина;
grdRpt.RenderControl(htmltextwrtter);
Ответ.Write(strwriter.Метод toString());
Ответ.Конец();
}

когда я запускаю приведенный выше код. excel не загружается, ошибка отображается в следующей строке

Ответ.Конец();

в чем же ошибка в моем вышеприведенном коде?

&ЛТ;%@ страницы язык="в C#" AutoEventWireup значение="истинной" отделенного кода="отчет.aspx-файл.КС" EnableEventValidation = "ложных" наследует="сделка" %&ГТ;

я также установил Enableeventvalidation false.

как решить вышеприведенную ошибку.

Что я уже пробовал:

Мой код выглядит следующим образом

охраняемых недействительными btnextract_Click(объект отправителя, EventArgs в электронной)
{
Ответ.Четкий();
Ответ.Буфер = true;
Ответ.ClearContent();
Ответ.ClearHeaders();
Ответ.Кодировка = "";
строка FileName = "Vithal" + DateTime.Теперь + ".xls";
Системы.ИО.Stringwriter не strwritter = новая система.ИО.Stringwriter не();
HtmlTextWriter htmltextwrtter = новый HtmlTextWriter(strwriter);
Ответ.Кэш.SetCacheability(HttpCacheability.NoCache);
Ответ.Значение contentType = "применение/донгов.в MS-Excel с";
Ответ.AddHeader("Content-Disposition", "attachment;filename=" + FileName);
grdRpt.GridLines = линии сетки.Оба;
grdRpt.HeaderStyle.Font.Жирный = истина;
grdRpt.RenderControl(htmltextwrtter);
Ответ.Write(strwriter.Метод toString());
Ответ.Конец();
}

когда я запускаю приведенный выше код. excel не загружается, ошибка отображается в следующей строке

Ответ.Конец();

в чем же ошибка в моем вышеприведенном коде?

&ЛТ;%@ страницы язык="в C#" AutoEventWireup значение="истинной" отделенного кода="отчет.aspx-файл.КС" EnableEventValidation = "ложных" наследует="сделка" %&ГТ;

я также установил Enableeventvalidation false.

как решить вышеуказанную ошибку

Richard Deeming

"ошибка отображается в следующей строке"
"как решить вышеуказанную ошибку"

Вы продолжаете ссылаться на "ошибку", как будто думаете, что мы можем видеть ваш экран или читать ваши мысли.

Нажмите на зеленую ссылку "улучшить вопрос" и добавьте полную информацию об ошибке в свой вопрос.

1 Ответов

Рейтинг:
2

Dave Kreskowiak

МММ...вы выводите HTML-элемент управления клиенту и говорите ему, что это книга Excel. Это не сработает. Даже близко нет. HTML-это не то, что Excel знает, что с ним делать.

В интернете есть масса примеров, которые показывают, как экспортировать DataTable в Книгу Excel. Но вы не можете использовать Excel или Office, Interop. Вы должны использовать другую библиотеку, например OpenXML SDK, ClosedXML SDK или аналогичную.

Гугл: "в C# DataTable для экспорта Asp.net в Excel "[^]