返回首页

我使用GridView数据导出到Excel代码..


 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" EnableModelValidation="True"

                                OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCommand="GridView1_RowCommand"

                                OnRowCancelingEdit="GridView1_RowCancelingEdit">

                                <columns>

                                    <asp:TemplateField HeaderText="Product Name">

                                        <itemtemplate>

                                            <asp:Label ID="lblProductName" runat="server" Text='<%# Eval("ProductName") %>'>

                                        </itemtemplate>

                                    

                                    <asp:TemplateField HeaderText="Qty">

                                        <itemtemplate>

                                            <asp:Label ID="lblQty" runat="server" Text='<%# Eval("Qty") %>'>

                                        </itemtemplate>

                                        <edititemtemplate>

                                            <asp:TextBox ID="txtQty" runat="server" Text='<%# Eval("Qty") %>' Width="50px">

                                        </edititemtemplate>

                                    

                                    <asp:TemplateField HeaderText="Price">

                                        <itemtemplate>

                                            <asp:Label ID="lblPrice" runat="server" Text='<%# Eval("Price") %>'>

                                        </itemtemplate>

                                    

                                    <asp:TemplateField HeaderText="Total Price">

                                        <itemtemplate>

                                            <asp:Label ID="lblTotalPrice" runat="server" Text='<%# Eval("Total") %>'>

                                        </itemtemplate>

                                    

                                    <asp:TemplateField HeaderText="Edit">

                                        <edititemtemplate>

                                            <asp:LinkButton ID="lnkUpdate" runat="server" Text="Update" CommandName="Update"

                                                CommandArgument='<%# Eval("ProductID") %>'>

                                            <asp:LinkButton ID="lnkCancel" runat="server" CommandName="Cancel" Text="Cancel"

                                                CommandArgument='<%# Eval("ProductID") %>'>

                                        </edititemtemplate>

                                        <itemtemplate>

                                            <asp:LinkButton ID="lblEditItem" runat="server" Text="Edit" CommandName="Edit" CommandArgument='<%# Eval("ProductID") %>' />

                                        </itemtemplate>

                                    

                                    <asp:TemplateField HeaderText="Cancel">

                                        <itemtemplate>

                                            <asp:LinkButton ID="lblCancelItem" runat="server" Text="Cancel" CommandArgument='<%# Eval("ProductID") %>'

                                                OnClick="lblCancelItem_Click" />

                                        </itemtemplate>

                                    

                                </columns>

                            

{C}

protected void Export2Excel()

        {

            try

            {

                this.GridView1.AllowPaging = false;

                this.GridView1.AllowSorting = false;

                this.GridView1.EditIndex = -1;

 

                // Let's bind data to GridView

                this.BindData();

 

                // Let's output HTML of GridView

                Response.Clear();

                Response.ContentType = "application/vnd.xls";

                Response.AddHeader("content-disposition",

                        "attachment;filename=MyList.xls");

                Response.Charset = "";

                StringWriter swriter = new StringWriter();

                HtmlTextWriter hwriter = new HtmlTextWriter(swriter);

                GridView1.RenderControl(hwriter);

                Response.Write(swriter.ToString());

                Response.End();

            }

            catch (Exception exe)

            {

                throw exe;

            }

         

        }       

但是当我执行这种方法当时我得到这个错误

{体C3}
我从互联网这个代码
我在哪里错了....

回答

评论会员:游客 时间:2012/02/06
感谢你给我的解决方案...现在我有我的错误,我解决这个问题,现在它的工作完美..我添加了一个更新,所以我得到了错误,当我删除我的更新面板相同的代码工作,没有错误..
Thiyagarajan.rk:试试这个链接..

评论会员:PrahladMca 时间:2012/02/06
使用帮助这个类,你可以在Excel.Only通过2参数文件的名称和网格实例
NBSP出口网格视图中的数据;

使用制度;
。使用System.Collections.Generic;
使用的System.Web; CSDN社区 -

使用System.Web.UI.WebControls;使用System.IO


使用iTextSharp.text.html;
使用iTextSharp.text.html.simpleparser

使用iTextSharp.text

使用iTextSharp.text.pdf的; NBSP






/ / /公升; summarygt
/ / / ExcelExport
摘要说明/ / / LT ;/ summarygt;
公共类ExcelExport
{

NBSP公共静态无效的出口(字符串文件名,GridView的GV)
NBSP ; {
HttpContext.Current.Response.Clear()
NBSP HttpContext.Current.Response.AddHeader(
NBSP"内容处理",string.Format("附件;文件名= {0}",文件名))
HttpContext.Current.Response.ContentType ="应用程序/ MS-Excel的";
NBSP
使用(StringWriter将SW =新的StringWriter())

使用(HtmlTextWriter的HTW =新的HtmlTextWriter(SW))
NBSP ; NBSP {
NBSP / / 创建一个表,包含网格
NBSP表表表()
NBSP
/ / NBSP 包括
NBSP网格线设置; table.GridLines = gv.GridLines;
NBSP
/ / 添加标题行如果表
(gv.HeaderRow = NULL)
NBSP {
NBSP ExcelExport.PrepareControlForExport(gv.HeaderRow);
NBSP table.Rows.Add(gv.HeaderRow)
}
NBSP
NBSP ; / / 每个数据行添加到表
NBSP ; NBSP的foreach(GridViewRow的在gv.Rows排)
NBSP NBSP的 NBSP {
NBSP ; NBSP ExcelExport.PrepareControlForExport(行)
NBSP table.Rows.Add(行);
} {BR NBSP}
NBSP / / 添加页脚行
表 如果(!gv.FooterRow = NULL)
NBSP {
NBSP ExcelExport.PrepareControlForExport(gv.FooterRow);
NBSP table.Rows.Add(gv.FooterRow);
}
NBSP
NBSP / / NBSP
NBSP htmlwriter呈现表; table.RenderControl(HTW)
NBSP,
NBSP / / ; 呈现响应
NBSP htmlwriter HttpContext.Current.Response.Write(sw.ToString())
HttpContext.Current.Response.End()
}
NBSP }
}
NBSP
/ / /公升summarygt的;
/ / /用文字
NBSP所包含的控件; / / / LT ;/ summarygt;
NBSP / / / <参数名称="控制"GT; LT ;/ paramgt;
NBSP私人静态无效PrepareControlForExport的控制控制
{{BR } NBSP (我= 0; LT; control.Controls.Count我,我)
{
控制电流= control.Controls [I]
NBSP 如果(目前是LinkBut​​ton的)
{
control.Controls.Remove(当前)
control.Controls.AddAt(I,新的LiteralControl的((当前
的LinkBut​​ton )文本))
}
NBSP 否则,如果(目前的ImageButton)
NBSP {
NBSP ; control.Controls.Remove(电流);
NBSP control.Controls.AddAt(I,新的LiteralControl的((当前的ImageButton
)的AlternateText)。); BR} }
否则,如果(目前是超链接)
{
control.Controls.Remove(电流);
control.Controls.AddAt(I,新的LiteralControl的((目前为超链接文本
))。)
NBSP ; }
否则,如果(电流的DropDownList)
{
NBSP ; control.Controls.Remove(电流);
NBSP NBSP control.Controls.AddAt(I,新的LiteralControl的((目前为DropDownList的SelectedItem.Text
))。);
}
(目前是CheckBox的),否则,如果{ BR} NBSP {
control.Controls.Remove(当前)
control.Controls.AddAt(I,新的LiteralControl的(复选框(当前
)经过"真":"假")。?)
NBSP ; }
NBSP
如果( current.HasControls())
{
NBSP ; ExcelExport.PrepareControlForExport(电流);
NBSP }
}
}

{BR NBSP}; NBSP }
评论会员:游客 时间:2012/02/06
|赖斯:这听起来像你的设计视图没有被格式化correclty-打开设计视图,找到你的GridView1控制和检查语法
乌玛尚卡尔帕特尔
评论会员:游客 时间:2012/02/06
我ahve这个工具{A}这是非常好的
codefighting
评论会员:游客 时间:2012/02/06
{的C4}按照这个格式,再试一次:阿努普达斯古普塔(asteranup)的
嗨,

这些尝试,

{A2}

{A3的}]