2009-11-26 68 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