2010-07-03 2 views
2

Я пытаюсь экспортировать repeter/Gridview в excel, this is working fine in my local machine and windows server 2003, however when I deployed on Windows server 2008 its not working properly. Вот мой кодЭкспорт в excel - Проблема на Windows Server 2008 IIS7

StringWriter sw = new StringWriter(); 
    HtmlTextWriter htw = new HtmlTextWriter(sw); 
    string attachment = "attachment; filename=myReport.xls"; 
    Response.ClearContent(); 
    Response.AddHeader("content-disposition", attachment); 
    Response.ContentType = "application/vnd.ms-excel"; 
    rpt.RenderControl(htw); 
    Response.Write(sw.ToString()); 
    Response.Flush(); 
    Response.End(); 

Сервер Детали: Windows Server 2008 и IIS7

В Mozilla все содержимое страницы экспортируются в первенствовать с ошибкой, но в IE & Chrome, пустой Excel файл экспортируется без данные.

ответ

1

Вы пишете строку ответа. Я бы ожидал, что этот тип файла будет двоичным, и поэтому вы должны использовать Response.BinaryWrite(). Что на самом деле происходит от rpt.RenderControl (htw)? Я подозреваю, что вы должны изменить свой тип контента на text/csv, который, по-прежнему, будет обрабатывать excel.

+0

это не работает –

+0

что не работает? Вы пробовали sw.Flush()? –

+0

Вы имеете в виду, что я должен добавить sw.Flush() вместо Response.Flush()? –