2012-04-25 65 views
0

下面是我用來將我的gridview數據導出到Excel的方法。用戶詢問我是否可以命名工作表選項卡。有任何想法嗎?提前致謝!VB ASP.Net導出到Excel:名稱工作表選項卡

Private Sub btnExportToExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportToExcel.Click   
    Dim form As New HtmlForm 
    Dim strAttachment As String 
    Dim stw As StringWriter 
    Dim htextw As HtmlTextWriter 

     stw = New StringWriter 
     strAttachment = "attachment; filename=" & strAppName & ".xls" 
     HttpContext.Current.Response.ClearContent() 
     HttpContext.Current.Response.AddHeader("content-disposition", strAttachment) 
     HttpContext.Current.Response.ContentType = "application/vnd.ms-excel" 
     htextw = New HtmlTextWriter(stw) 
     form.Controls.Add(CType(Session("gridViewControl"), Control)) 
     Me.Controls.Add(form) 
     form.RenderControl(htextw) 
     Response.Write("<b>" & txtTitle.Text & "</b><br />") 
     Response.Write(stw.ToString())    
     Response.Flush() 
     Response.Close() 
     HttpContext.Current.ApplicationInstance.CompleteRequest() 

End Sub 

回答

0

不,用這種方法無法做到這一點。你將不得不使用專門的庫如Gembox來做到這一點。

1

這是不可能的,因爲你的輸出結果真的是HTML表格 - 這個Excel會很高興地「解析」/翻譯成行和列(因爲這就是表格)。你並沒有真正創建一個「原生」的Excel文件。

你可以有更多的選擇(假設所有的客戶端都具有Excel)中通過使用本地.NET使用的Excel XML的LINQ to XML,不要被這個詞嚇到)。我相信Excel的XML支持可以追溯到Office 2003(甚至可能是Office XP/2002,但我可能是錯的)。

您可以在C#或VB.net中這樣做,但在VB.net中,它幾乎是微不足道的,因爲VB.Net的XML文字。請參閱this MSDN video by Beth Massi以獲取靈感(魔法開始於5:00左右,但整部視頻都值得每分鐘一次)。

相關問題