2015-07-14 3 views
1

С помощью кода регистрации я экспортировал таблицу данных в excel.Файл Excel не открывается после завершения загрузки?

Response.ClearContent(); 
Response.Write(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"); 
Response.AddHeader("content-disposition", attachment); 
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
Response.Charset = "utf-8"; 
string tab = string.Empty; 

Response.Write("<font style='font-size:11.0pt; font-family:Calibri;'>"); 

Response.Write("<BR><BR><BR>"); 

Response.Write("<Table border='1' bgColor='#ffffff' borderColor='#000000' cellSpacing='0' cellPadding='0' style='font-size:11.0pt; font-family:Calibri; background:white;'> <TR>"); 

foreach (DataColumn datacol in dt.Columns) 
{ 
    Response.Write("<Td style = "+"\"width:120px;\""+">"); 
    Response.Write("<B>"); 
    Response.Write(tab + datacol.ColumnName); 
    Response.Write("</B>"); 
    Response.Write("</Td>"); 
} 
Response.Write("</TR>"); 

foreach (DataRow dr in dt.Rows) 
{ 
    Response.Write("<TR>"); 
    for (int j = 0; j < dt.Columns.Count; j++) 
    { 
     Response.Write("<Td>"); 
     Response.Write(tab + Convert.ToString(dr[j])); 
     Response.Write("</Td>"); 
    } 

    Response.Write("</TR>"); 
} 
HttpContext.Current.Response.Write("</Table>"); 
Response.Write("</font>"); 
Response.Flush(); 
Response.End(); 

Когда я пытаюсь открыть файл загруженный Excel он показывает следующее сообщение

enter image description here

любые необходимые изменения в моем коде. не могли бы вы помочь в этом.

спасибо, пурна

+0

Обратите внимание, что браузеры имеют настройки, позволяющие клиенту определить, есть ли файлы определенного типа открываются автоматически. Эти настройки не могут быть переопределены разметкой. –

ответ

0

Проблема связана с форматом файла, так что я мог найти, как будет решение в VBA (только писать в явном виде выходного формата)

response.headers['Content-Disposition'] = 'attachment; filename=text1.xlsx' 

В своем коде вы имеете для изменения следующей строки, указывающей также явно выходной формат .xlsx:

Response.AddHeader("content-disposition", attachment); 
+0

Привет, Спасибо за повтор, я изменил свой код, как вы предложили, и я тоже получаю такую ​​же проблему. –

+0

Постараюсь найти дополнительную информацию об этой проблеме! – juanmajmjr

0

Проблема связана с файловым форматом. Попробуйте ниже код, он работает

Response.AddHeader("content-disposition", "attachment; filename=EmpDetails.xls"); 

вместо

Response.AddHeader("content-disposition", attachment); 
Смежные вопросы