从sql datareader导出到excel从vb.net

问题描述:

我有一个SQL查询与SQL datareader。我为数据读取器提供了一个for循环。现在当数据开始从查询中输入时,我希望它在for循环中导出为ex​​cel。 这里是我的代码从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

有许多方法可以使用

  1. 决定,如果你要创建一个可以参考的服务器上的文件在超链接

  2. 实时响应客户端流,设置MIME类型,以便在Excel中加载响应。

对于任何一种方法,您都需要创建Excel将打开的输出。这里有一些选项:

  1. 您可以使用电子表格xml。这是Excel可以打开的旧版本的xml格式。
  2. 您可以将html写入文件,并使用.xls扩展名/写入html将其重命名为响应流,并将MIME类型设置为excel。
  3. 使用OOXML创建一个xlsx文件。此文件可以从Office 2000以后的所有版本的Excel中打开(客户端可能需要下载免费更新以启用此功能)。 OOXML非常复杂,所以我建议使用免费的库,如Simple OOXML。您也可以从该链接下载OOXML SDK。

有关将xlsl文档写入响应流的信息,请参阅我的博文here