2012-05-04 79 views
0

我已經創建了一個ashx文件來在網站上打開excel 2007。如何使用.ashx在瀏覽器上打開excel 2007/2010?

這裏是Test.aspx文件的代碼:(呼叫TEST.HTM打開一個彈出)

<a href="test.htm" target="_blank">Export</a> 

這裏是TEST.HTM的代碼:(使用iframe來加載Excel文件)

<iframe src="handler1.ashx" style="height: 421px; width: 800px" ></iframe> 

這裏是代碼handle.ashx:

void ProcessRequest(HttpContext context) 
    { 

     string filePath = "E:/test.xlsx"; 
     string filename = Path.GetFileName(filePath); 
     context.Response.Clear(); 
     context.Response.AddHeader("Content-Disposition", "inline;filename=test.xlsx"); 
     context.Response.Charset = ""; 
     context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
     context.Response.WriteFile(filePath); 
     context.Response.Flush(); 
     context.Response.End(); 
    } 

但Excel文件總是由Microsoft Excel應用程序打開。 請幫幫我。

非常感謝。

回答

0

context.Response.WriteFile(filePath); //你正試圖寫入一個文件塊。

在此之前,您需要將所有數據提取到內存中。更改喜歡這個

context.Response.Write(YourExcelData); 
+0

喜拉維, 我想下面編輯代碼,但它的主要錯誤(無法打開ebcause文件格式或文件ext是無效的),當打開文件: 的FileStream FS =新的FileStream( filePath,FileMode.Open,FileAccess.Read); byte [] b =新字節[(int)fs.Length]; fs.Read(b,0,(int)fs.Length); fs.Close(); context.Response.Write(b); –

相關問題