Вам нужно будет сгенерировать сторону файлового сервера Excel, а затем отправить байты клиенту, используя соответствующий тип MIME, чтобы клиент мог понять, как его открыть.
Что-то вроде этого ...
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", fileName));
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.BinaryWrite(bytes);
, где fileName
- это имя файла, которое вам нужно, а bytes
- вывод из вашего генератора Excel в форме byte[]
.
Обратите внимание, что это не так.На самом деле не нужно открывать Excel или что-то в этом роде, он просто представляет клиенту контент в наилучшем из возможных форматов, чтобы клиент мог открыть его в Excel.Пользователь должен будет нажать «открыть», и если у него установлено приложение Excel, это будет приложение по умолчанию для открытия файла.
Если клиент не имеет Excel или его типы MIME не сопоставленыи т. д., это не сработает.Без какого-то сумасшедшего ActiveX Voodoo (который я не рекомендую) вы не сможете «открыть для них Excel».