从sql datareader导出到excel从vb.net
问题描述:
我有一个SQL查询与SQL datareader。我为数据读取器提供了一个for循环。现在当数据开始从查询中输入时,我希望它在for循环中导出为excel。 这里是我的代码从sql datareader导出到excel从vb.net
尝试 昏暗SqlStr的String = “”,博士为SqlDataReader的=无
ConnectDB(Cnn)
Str = "query"
SqlCmd = New SqlCommand(Str, Cnn)
dr = SqlCmd.ExecuteReader
while dr.read
..EXPORT TO EXCEL
do
end while
没有人知道如何做到这一点?
答
此示例将呈现整个网格内容到Excel文件。
private void _Click(object sender, System.EventArgs e)
{
//export to excel
Response.Clear();
Response.Buffer= true;
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
this.EnableViewState = false;
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter =
new System.Web.UI.HtmlTextWriter(oStringWriter);
this.ClearControls(dg);
dg.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
答
我读过关于保存数据集以优于CodeProject。你可以参考这篇文章:http://www.codeproject.com/KB/dotnet/ExportToExcel.aspx
或http://www.codeproject.com/KB/aspnet/Export_large_data_to_xl.aspx
答
有许多方法可以使用
决定,如果你要创建一个可以参考的服务器上的文件在超链接
实时响应客户端流,设置MIME类型,以便在Excel中加载响应。
对于任何一种方法,您都需要创建Excel将打开的输出。这里有一些选项:
- 您可以使用电子表格xml。这是Excel可以打开的旧版本的xml格式。
- 您可以将html写入文件,并使用.xls扩展名/写入html将其重命名为响应流,并将MIME类型设置为excel。
- 使用OOXML创建一个xlsx文件。此文件可以从Office 2000以后的所有版本的Excel中打开(客户端可能需要下载免费更新以启用此功能)。 OOXML非常复杂,所以我建议使用免费的库,如Simple OOXML。您也可以从该链接下载OOXML SDK。
有关将xlsl文档写入响应流的信息,请参阅我的博文here。