Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 要归档的数据表_Vb.net - Fatal编程技术网

Vb.net 要归档的数据表

Vb.net 要归档的数据表,vb.net,Vb.net,在搜索“DataTable to File VB.net”之后,我在互联网上找到了这段代码。我想做的是在filestream中输出,是否可以设置一个响应outputstream?谢谢 编辑:为了澄清(更改),我现在正在处理以下内容: Sub DataTable2CSV(ByVal table As DataTable, ByVal filename As String) DataTable2CSV(table, filename, vbTab) End Sub Sub DataTable2CS

在搜索“DataTable to File VB.net”之后,我在互联网上找到了这段代码。我想做的是在filestream中输出,是否可以设置一个响应outputstream?谢谢

编辑:为了澄清(更改),我现在正在处理以下内容:

Sub DataTable2CSV(ByVal table As DataTable, ByVal filename As String)
DataTable2CSV(table, filename, vbTab)
End Sub

Sub DataTable2CSV(ByVal table As DataTable, ByVal filename As String, _
ByVal sepChar As String)
Dim writer As System.IO.StreamWriter
Try
    writer = New System.IO.StreamWriter(filename)

    ' first write a line with the columns name
    Dim sep As String = ""
    Dim builder As New System.Text.StringBuilder
    For Each col As DataColumn In table.Columns
        builder.Append(sep).Append(col.ColumnName)
        sep = sepChar
    Next
    writer.WriteLine(builder.ToString())

    ' then write all the rows
    For Each row As DataRow In table.Rows
        sep = ""
        builder = New System.Text.StringBuilder

        For Each col As DataColumn In table.Columns
            builder.Append(sep).Append(row(col.ColumnName))
            sep = sepChar
        Next
        writer.WriteLine(builder.ToString())
    Next
Finally
    If Not writer Is Nothing Then writer.Close()
End Try
End Sub
下面的方法应该有效

    Protected Sub DoExportFinancials()
    Dim ef As New ExportFinancials()
    ef.Behavior = ExportFinancials.ObjectBehavior.Export
    If ef.Load() = True Then

        Me.GridView4.DataSource = ef.DT
        Me.GridView4.DataBind()

        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
        Response.AddHeader("content-disposition", "attachment;filename=FileName.xls")
        ' Response.Charset = ""
        'Response.Cache.SetCacheability(HttpCacheability.NoCache)
        Dim stringWrite As StringWriter = New StringWriter
        Dim htmlWrite As HtmlTextWriter = New HtmlTextWriter(stringWrite)
        GridView4.RenderControl(htmlWrite)
        Response.Write(stringWrite.ToString())
        Response.End()

    End If
编辑:根据问题的更多细节, [更改]:如何将DataTable作为CSV/Excel文件传递到响应流,而不将其写入服务器上的磁盘

实现上述功能的一种方法是首先将DataTable绑定到GridView,然后使用下面的

    Dim FilePath As String = serverPath & "\App_Data\" & FileName
    Response.Clear()
    Response.ContentType = "text/csv"
    Response.AddHeader("Content-Disposition", "attachment; filename=" & FileName)
    Response.TransmitFile(FilePath)
    Response.End()

请详细说明一下你想做什么。添加一些伪代码,如果有的话,它会显示您希望此代码执行的其他操作。目前,此代码只是将一个文件添加到我的Web服务器上,我希望它将一个文件输出给单击按钮在其计算机上导出的人。我读过很多书,上面说你只能用Response来做这件事。*但是还没有找到任何适合这段代码的东西。当我现在点击按钮时,该文件试图将自己写入其无权访问的服务器。这会在Web服务器上查找文件,不是吗?我正在尝试从一个数据表转到下载的文件如果我是对的,您正在使用DataTable2CSV将数据表的内容写入CSV文件。这将创建一个新的CSV文件。在上面的代码段中传递与CSV文件相同的文件路径,新文件应被下载。如果这不是您要查找的内容,请详细说明。感谢您提供更多详细信息如果出现写访问问题,您可以快速找到解决方案,将DataTable的内容绑定到GridView(可能会将其隐藏),并使用以下代码导出响应。ContentType=“application/vnd.openxmlformats officedocument.spreadsheetml.sheet”Response.AddHeader(“内容处置”,“附件;filename=filename.xls”)Response.Charset=”“Response.Cache.SetCacheability(HttpCacheability.NoCache)Dim stringWrite As StringWriter=New StringWriter Dim htmlWrite As HtmlTextWriter=New HtmlTextWriter(stringWrite)grid.RenderControl(htmlWrite)Response.Write(stringWrite.ToString())Response.End()无法找出Excel变为空白的原因。请阅读下面的文章
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition", "attachment;filename=FileName.xls")
Response.Charset = "" Response.Cache.SetCacheability(HttpCacheability.NoCache)
Dim stringWrite As StringWriter = New StringWriter
Dim htmlWrite As HtmlTextWriter = New HtmlTextWriter(stringWrite)
grid.RenderControl(htmlWrite) Response.Write(stringWrite.ToString())
Response.End()