2009-11-26 70 views
0

我們在C#.net網站上通過向Response寫出HTML表格生成Excel電子表格。這很好,但表格名稱被設置爲與文件名稱相同。如何設置C#生成的Excel電子表格的表名?

有沒有設置此?導入時我們需要某個表單名稱。

代碼:

string filename = String.Format("{0}-CopyDataBack_{1}.xls", Master.EventID.ToString(), DateTime.Now.ToString("dd-MM-yy_HHmm")); 

Response.Clear(); 
Response.Buffer = true; 
Response.ContentType = "application/vnd.ms-excel"; 
Response.AddHeader("content-disposition", "attachment;filename=" + filename); 
Response.Charset = ""; 
this.EnableViewState = false; 

System.Text.StringBuilder tableOut = new System.Text.StringBuilder(); 
// ... Create an HTML table in a StringBuilder ... 
Response.Write(tableOut); 
Response.End(); 

回答

1

通過創建一個表,並設置內容類型到Excel,你不能定義一個工作表名稱,也沒有創造更多的工作表。

您可以使用OpenXML SDK生成完整的Excel工作簿,但您的客戶需要使用Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint 2007 File Formats來處理Office 2007文件格式。

+0

或者您可以使用舊的SpreadsheetML文件類型,但是當涉及到圖表等時您會受到限制。這裏有一個參考:http://msdn.microsoft.com/en-us/library/bb226687(office.11​​).aspx – Ant 2009-11-26 13:22:49

+0

@Ant,很好的捕獲,ty – 2009-11-26 13:53:03

+0

np :)我發現評論的問題是,當你寫他們,你完全忘記upvote答案(如果適用)! – Ant 2009-11-26 14:01:35