powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Экспорт данных из GridView в Excel. Исключить столбцы.
2 сообщений из 2, страница 1 из 1
Экспорт данных из GridView в Excel. Исключить столбцы.
    #37607201
MSSQLAndDotNet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экспортирую данные из GridView в Excel.
делаю как написано здесь:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=881160&msg=11292527

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
using System;
using System.Data;
using System.Configuration;
using System.IO;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public class GridViewExportUtil
{
public static void Export(string fileName, GridView gv, string title)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader(
"content-disposition", string.Format("attachment; filename={0}", fileName));
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.Charset = "utf-8";

HttpContext.Current.Response.Write("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/></head><body>");

using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
htw.WriteLine("<h1>"+title+"</h1>");

// Create a form to contain the grid
Table table = new Table();

table.GridLines = gv.GridLines;

// add the header row to the table
if (gv.HeaderRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
table.Rows.Add(gv.HeaderRow);
}

// add each of the data rows to the table
foreach (GridViewRow row in gv.Rows)
{
GridViewExportUtil.PrepareControlForExport(row);
table.Rows.Add(row);
}

// add the footer row to the table
if (gv.FooterRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
table.Rows.Add(gv.FooterRow);
}

// render the table into the htmlwriter
table.RenderControl(htw);

// render the htmlwriter into the response
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.Write("</body></html>");
HttpContext.Current.Response.End();
}
}
}

/// <summary>
/// Replace any of the contained controls with literals
/// </summary>
/// <param name="control"></param>
private static void PrepareControlForExport(Control control)
{
for (int i = 0; i < control.Controls.Count; i++)
{
Control current = control.Controls[i];
if (current is LinkButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
}
else if (current is ImageButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
}
else if (current is HyperLink)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
}
else if (current is DropDownList)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
}
else if (current is CheckBox)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "True" : "False"));
}

if (current.HasControls())
{
GridViewExportUtil.PrepareControlForExport(current);
}
}
}
}




GridView:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<asp:GridView ID="gvCreditMaturity" runat="server" AutoGenerateColumns="false" DataKeyNames="ID_Deal" GridLines="Both" BackColor="White" onrowcommand="gvPhone_RowCommand"  OnRowCreated="gvPaymentRow_RowCreated">
            <SelectedRowStyle BackColor="#316AC5" ForeColor="White" />
            <HeaderStyle BackColor="#ECE9D8" Font-Bold="True" ForeColor="Black" />
            <Columns>
                <asp:TemplateField HeaderText="" >
                    <ItemTemplate> 
                        <asp:Button ID="bSelect" CssClass="HyperlinkButton" runat="server" Text="Выбрать" CommandName="cmdSelect" CommandArgument='<%#Eval("ID_Deal")%>'/>
                    </ItemTemplate>
                </asp:TemplateField> 
                <asp:TemplateField HeaderText="Фамилия" >
                    <ItemTemplate>
                        <asp:Label ID="lSurname" runat="server" Text='<%# Eval("Person.Surname")%>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                
                ...

            </Columns>
        </asp:GridView>



Экспортировать нужно не все столбцы GridView!
Например не нужно экспортировать столбец ID="bSelect"
Как это сделать?

Я так понимаю в этом участке кода нужно "обойти" не нужные столбцы
Код: c#
1.
2.
3.
4.
5.
   foreach (GridViewRow row in gv.Rows)
                    {
                       GridViewExportUtil.PrepareControlForExport(row);
                        table.Rows.Add(row);
                    }


Или сразу из gv удалить не нужные
Если это возможно ест-но
прошу Вашего совета
...
Рейтинг: 0 / 0
Экспорт данных из GridView в Excel. Исключить столбцы.
    #37847172
гапшима
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MSSQLAndDotNet,
А как быть, если внутрь GridView вложен другой GridView?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Экспорт данных из GridView в Excel. Исключить столбцы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]