Выгрузка таблицы ASPxGridView в Excel, PDF и другие форматы

Доброго времени суток.

Не прошло и полгода :) Хотя нет… Прошло…

Используем во многих проектах DevExpress, чаще всего грид (ASPxGridView). Очень полезная штука, прям очень.

Встала как-то задача выгрузки текущей выборки из грида в Excel. После гугла было определено, что у грида есть встроенный функционал для этого и он описан на оф. сайте. Но я все равно о нем напишу ))
Буду рассматривать использование грида в разметке.
Например, у нас есть грид на странице:

<dx:ASPxGridView ID="grid" runat="server"... />

Для начала надо добавить на страницу контрол экспортера, который в качестве параметра принимает ID грида для экспотра:

<dx:ASPxGridViewExporter ID="gridExport" runat="server" GridViewID="grid"></dx:ASPxGridViewExporter>

С его импортом на страницу нет проблем, он есть в файле библиотеки, который уже подключен к странице, если вы добавили грид ранее (DevExpress.Web).
Но для работы экспорта еще нужна будет библиотека DevExpress.Printing.14.1.Core.dll (14.1 замените на вашу версию сборки).
Дальше уже идет просто обработка выгрузки. Для начала добавляем красивенькую кнопочку от DevExpress:

<dx:ASPxButton ID="btnPdfExport" runat="server" Text="Export to Excel" UseSubmitBehavior="False" OnClick="btnExport_Click" />

И пишем ее простейший обработчик (можно добавить обработчик ошибок по своему усмотрению):

public void btnExport_Click(object s, EventArgs e) {
    gridExport.WriteXlsxToResponse(DateTime.Now.ToString("dd-MM-yyyy HH.mm"));
}

В данном случае мы просто пишем в ответ файл с расширением xlsx (можно и просто xls) с датой и временем в качестве имени файла. А еще этот метод вызывает Response.End(). Есть так же метод, который делает выгрузку файла в Stream.
Дополнительные перегрузки методов, типов данных для выгрузки можно найти в примере на официальном сайте DevExpress.

К слову, выгрузка происходит с сохранением группировок, сортировок и фильтрации (может еще что-то забыл).

Что-то сумбурно получилось… Если вдруг будут вопросы — пишите, будем разбираться вместе.

Всем пока )



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Яндекс.Метрика