2012-05-04 3 views
0

Я уже создал файл ashx, чтобы открыть Excel 2007 на сайте.Как открыть Excel 2007/2010 в браузере с помощью .ashx?

Вот код в 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

привет Ravi, Я попытался изменить код, как показано ниже, но у него есть ошибка (не может открыть ebcause формат файла или файла внеш не является действительным) при открытии файла: FileStream фс = новый FileStream (filePath, FileMode.Open, FileAccess.Read); byte [] b = новый байт [(int) fs.Length]; fs.Read (b, 0, (int) fs.Length); fs.Close(); context.Response.Write (b); –

Смежные вопросы