Click here to Skip to main content
15,880,503 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
VB
<System.Web.Services.WebMethod()> _
   Public Shared Function exportexcel_TKNC(ByVal tenBang As String, ByVal dkien As String) As String
       Dim strText As String = ""
       Dim strTextTenTruong As String = ""
       Dim strTextMoTaTruong As String = ""
       Dim strFieldFillOrGet As String = ""
       Dim arrGiatri As New List(Of String)
       Dim arrAlias As New List(Of String)
       Dim arrColumns As New List(Of String)
       Dim iCount As Integer = 0
       Dim strSQL As String = ""
       Dim sql As String = ""
       Dim dtexport As New DataSet
       Dim dad As New OracleDataAdapter
       'pubTenBang = tenBang
       If tenBang <> "" Then
           'sql = "SELECT column_name, data_type, data_length FROM all_tab_columns WHERE "
           'sql &= " table_name = '" & tenBang & "' Order By COLUMN_ID"
           sql = "Select * From HE_THONG_COMMENTS_OF_FIELDS"
           sql &= " Where TEN_BANG = '" & tenBang & "'"
           Dim dtReader As OracleDataReader
           dtReader = clsTable.SelectTable_ReaderORACLE(clsTable.cnnOracle, sql)
           If dtReader.HasRows Then
               While dtReader.Read
                   If (dtReader.Item(0).ToString <> "") Then
                       arrColumns.Add(dtReader.Item(1) & "")
                       arrAlias.Add(dtReader.Item(2) & "")
                   End If

               End While

           End If
           dtReader.Close()

           strSQL = "Select "
           For iCount = 0 To arrColumns.Count - 1
               If iCount <> 0 Then
                   strSQL &= ", "
               End If
               strSQL &= "" & arrColumns(iCount)
           Next
           strSQL &= " from " & tenBang & " where " & dkien

           dad = New OracleDataAdapter(strSQL, clsTable.cnnOracle)
           dad.Fill(dtexport)
           Dim Response As HttpResponse = System.Web.HttpContext.Current.Response
           Dim GridView1 As New GridView()
           GridView1.AllowPaging = False
           GridView1.DataSource = dtexport
           GridView1.DataBind()

           Response.Clear()
           Response.Buffer = True
           Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls")
           Response.Charset = ""
           Response.ContentType = "application/vnd.ms-excel"
           Dim sw As New StringWriter()
           Dim hw As New HtmlTextWriter(sw)

           For i As Integer = 0 To GridView1.Rows.Count - 1
               'Apply text style to each Row
               GridView1.Rows(i).Attributes.Add("class", "textmode")
           Next
           GridView1.RenderControl(hw)

           'style to format numbers to string
           Dim style As String = "<style> .textmode { mso-number-format:\@; } </style>"
           Response.Write(style)
           Response.Output.Write(sw.ToString())
           Response.Flush()
           Response.End()

           'Dim filename As String = tenBang + ".xls"
           'Dim tw As New System.IO.StringWriter()
           'Dim hw As New System.Web.UI.HtmlTextWriter(tw)
           'Dim dgGrid As New System.Web.UI.WebControls.DataGrid()
           'dgGrid.DataSource = dtexport
           'dgGrid.DataBind()
           ''Get the HTML for the control.
           'dgGrid.RenderControl(hw)
           ''Write the HTML back to the browser.
           'Dim Response As HttpResponse = System.Web.HttpContext.Current.Response
           'Response.ContentType = "application/vnd.ms-excel"
           'Response.AppendHeader("Content-Disposition", (Convert.ToString("attachment; filename=") & filename) + "")
           ''Me.EnableViewState = False
           'strText = tw.ToString
           ''Response.Write(tw.ToString())
           ''HttpContext.Current.Response.Flush()
           ''HttpContext.Current.Response.SuppressContent = True
           ''HttpContext.Current.ApplicationInstance.CompleteRequest()
           ''HttpContext.Current.Response.End()
       End If

       Return strText

   End Function

Posted
Comments
ZurdoDev 21-May-15 8:08am    
What does happen?
sinh dhqn 22-May-15 0:22am    
Nothing happens, no error, no file, the browser does not do anything and no download file
ZurdoDev 22-May-15 7:36am    
Try swapping your Response.End and Response.Flush. I'm pretty sure you need to end the response before you flush it.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900