将数据库从Gridview导出到Excel [英] Export database from Gridview to 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屋!