将数据库从Gridview导出到Excel [英] Export database from Gridview to Excel

查看:97
本文介绍了将数据库从Gridview导出到Excel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我测试了下面的代码将数据库从Gridview导出到Excel,但是错误

类型为'GridView'的控件'gvInHoaDon'必须放在带有runat = server的表单标签内

  private   void  InHoaDonDuocChon(GridView gvInHoaDon)
{
Response.Clear();
Response.Buffer = true ;
Response.AddHeader( content-disposition
attachment; filename = HoaDon.xls);
Response.Charset = ;
Response.ContentType = application / ms-excel;
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);

gvInHoaDon.AllowPaging = false ;
gvInHoaDon.DataBind();
gvInHoaDon.RenderControl(hw);
// ThayđổiStyle
string style = @ < style> .textmode {mso-number-format:\ @ ;}< / style>;
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}



我引用了两种方式: http://www.codedigest.com/Articles/ASPNET/130_Export_to_Excel_in_ASPNet_20_-Gridview_to_Excel_DataTable_to_Excel.aspx [ ^ ]

但错误类型'GridView'的控件'gvInHoaDon'必须放在带有runat = server的表单标签内

请帮帮我。

非常感谢。

解决方案

请参考以下主题:



进出口Excel [ ^ ]

从ASP.Net GridView直接Excel导出 [ ^ ]

从C#.Net中的数据表导出到EXCEL [ ^ ]

^ ]

从网格导出大量数据使用C#查看和Datareader到Excel文件[ ^ ]



将数据导出到Excel文件 [ ^ ]

以5种格式导出报告 [ ^ ] < br $> b $ b

C#Excel教程 [ ^ ]



查看类似讨论:

使用C#在一个卷中将数据导出到Excel [ ^ ]


在这里发布您的aspx代码。

看起来内部缺少runat = server< asp:gridview xmlns:asp =#unknown >标签。添加它。


尝试这个,我认为它的工作原理



你将你的datagrid值绑定到xlDV,你可以访问像这个,





 Dim dt As New DataTable 
dt = xlDV.ToTable
'从数据库获取数据到datatable
Response.Clear()
Response.Buffer = True
Response.AddHeader(content-disposition,attachment; filename = ExpData.csv)

Response.Charset =
Response.ContentType =application / text
Dim sb As New StringBuilder()
for k As Integer = 0 To dt .Columns.Count - 1
'添加分隔符
sb.Append(dt.Columns(k).ColumnName +,c)
Next
'追加新行
sb.Append(vbCr& vbLf)



For each resultDR As DataRow in dt.Rows
For Each resultDC As DataColumn in dt.Columns
Dim strTemp As String = resultDR.Item(resultDC.ColumnName).ToString()
如果strTemp.Contains(System.Environment.NewLine)= True那么
strTemp = strTemp.Replace(System.Environment.NewLine ,)
结束如果
'添加分隔符
sb.Append(strTemp.Replace(,,;)+,c)
下一个
'追加新行
sb.Append(vbCr& vbLf)
下一个






Response.Output.Write(sb.ToString())
Response.Flush()
Response.End()





谢谢,

jeyamothi


I tested a below code to export database from Gridview to Excel,but error
"Control 'gvInHoaDon' of type 'GridView' must be placed inside a form tag with runat=server"

private void InHoaDonDuocChon(GridView gvInHoaDon)
    {
        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition",
         "attachment;filename=HoaDon.xls");
        Response.Charset = "";
        Response.ContentType = "application/ms-excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        
        gvInHoaDon.AllowPaging = false;
        gvInHoaDon.DataBind();
        gvInHoaDon.RenderControl(hw);
        //Thay đổi Style
        string style = @"<style> .textmode { mso-number-format:\@; } </style>";
        Response.Write(style);
        Response.Output.Write(sw.ToString());
        Response.Flush();
        Response.End();
    }


I referenced 2 ways: http://www.codedigest.com/Articles/ASPNET/130_Export_to_Excel_in_ASPNet_20_-Gridview_to_Excel_DataTable_to_Excel.aspx[^]
but error "Control 'gvInHoaDon' of type 'GridView' must be placed inside a form tag with runat=server"
Please help me.
Many thanks.

解决方案

Please refer following threads:

Import and Export Excel [^]
Direct Excel Export from ASP.Net GridView[^]
Export to EXCEL from Datatable in C#.Net[^]
Export to Excel from GridView in C#[^]
Export large data from Gridview and Datareader to an Excel file using C#[^]

Export Data to Excel file[^]
Export Report in 5 Formats[^]

C# Excel Tutorial[^]

Check similar discussion:
Export Data to Excel Using C# in One Colume[^]


Post your aspx code here.
It looks like runat=server is missing inside <asp:gridview xmlns:asp="#unknown"> tag. Add that.


Try this, i think its working

you bind your datagrid value into xlDV and you can access code like this,


Dim dt As New DataTable
        dt = xlDV.ToTable
        'Get the data from database into datatable
        Response.Clear()
        Response.Buffer = True
        Response.AddHeader("content-disposition", "attachment;filename=ExpData.csv")

        Response.Charset = ""
        Response.ContentType = "application/text"
        Dim sb As New StringBuilder()
        For k As Integer = 0 To dt.Columns.Count - 1
            'add separator
            sb.Append(dt.Columns(k).ColumnName + ","c)
        Next
        'append new line
        sb.Append(vbCr & vbLf)



        For Each resultDR As DataRow In dt.Rows
            For Each resultDC As DataColumn In dt.Columns
                Dim strTemp As String = resultDR.Item(resultDC.ColumnName).ToString()
                If strTemp.Contains(System.Environment.NewLine) = True Then
                    strTemp = strTemp.Replace(System.Environment.NewLine, " ")
                End If
                'add separator
                sb.Append(strTemp.Replace(",", ";") + ","c)
            Next
            'append new line
            sb.Append(vbCr & vbLf)
        Next






        Response.Output.Write(sb.ToString())
        Response.Flush()
        Response.End()



Thanks,
jeyamothi


这篇关于将数据库从Gridview导出到Excel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆