DataTable 쌍을 Excel로 내보내기

sql에서 조회한 데이터가 excel을 어떻게 내보내는지에 대한 문제는 인터넷에 N이 많으면 다시 말하지 않겠습니다. 이것은 DataTable 이미지를 Excel 형식에 맞는 문자열로 변환하고 클라이언트에서 출력하는 데 사용됩니다.먼저 함수를 써라.이미지 변환
''' <summary>
    '''  DataTable , Excel 
    ''' </summary>
    ''' <param name="Dt"> DataTable </param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function DataTable2Excel(ByVal Dt As DataTable) As String
        ' DataTable excel 
        Dim sb As New StringBuilder()
        Dim C_name As String
        Dim xx As String = ""
        sb.Append("<table cellspacing=""0"" rules=""all"" border=""1"" style=""height:100%;width:100%;border-collapse:collapse;"">")
        sb.Append("<tr class=""gvHeader"" >")
        For i = 0 To Dt.Columns.Count - 1
            C_name = Trim(Dt.Columns(i).ColumnName.ToString)
            sb.AppendFormat("<td style=""font-size: 12px; background-color: #CCCCCC; line-height: 26px; text-align: center; vertical-align: middle;height:30px"">{0}</td>", C_name)
        Next

        For i = 0 To Dt.Rows.Count - 1
            sb.Append("<tr class=""gvRow"">")
            For j = 0 To Dt.Columns.Count - 1
                xx = Dt.Rows(i)(j).ToString
                sb.AppendFormat("<td style=""text-align: center; vertical-align: middle;height:26px;font-size: 12px;"">{0}</td>", xx)
            Next
            sb.Append("</tr>")
        Next
        sb.Append("</tr>")
        sb.Append("</table>")
        Return sb.ToString
    End Function

그리고 내보내기 버튼 아래에서 호출하면 돼요.
 Response.Clear()
        Response.Buffer = True
        Response.Charset = "GB2312"
        Response.AppendHeader("Content-Disposition", "attachment;filename=" & Excelname & ".xls")
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")
        '  
        Response.ContentType = "application/vnd.xls"
        Str = DataTable2Excel(Dt)
        Dt.Dispose()

        ' excel 。 
        Response.Write(Str)
        Response.End()

좋은 웹페이지 즐겨찾기