Отправка файла пользователю.
От: michael_isu Беларусь  
Дата: 09.11.10 12:19
Оценка:
Есть некий шаблон — Excel-документ. Задача — заполнить его данными и отослать пользователю.
Используя DLR, открываю файл и заполняю его нужными данными, но как этот динамический ком-объект потом послать пользователю? Что-то мысль останавливается...

.NET 4.0, ASP.NET MVC
Re: Отправка файла пользователю.
От: Lloyd Россия  
Дата: 09.11.10 12:20
Оценка:
Здравствуйте, michael_isu, Вы писали:

_>Есть некий шаблон — Excel-документ. Задача — заполнить его данными и отослать пользователю.


Что значит отослать? По почте?

_>Используя DLR, открываю файл и заполняю его нужными данными, но как этот динамический ком-объект потом послать пользователю? Что-то мысль останавливается...
Re[2]: Отправка файла пользователю.
От: michael_isu Беларусь  
Дата: 09.11.10 13:25
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, michael_isu, Вы писали:


_>>Есть некий шаблон — Excel-документ. Задача — заполнить его данными и отослать пользователю.


L>Что значит отослать? По почте?


Файл скачивается при нажатии на ссылку. Т.е. надо сделать некий FileResult, который не статический файл с диска отправляет, а то, что я описал.
Re[3]: Отправка файла пользователю.
От: Lloyd Россия  
Дата: 09.11.10 13:30
Оценка:
Здравствуйте, michael_isu, Вы писали:

L>>Что значит отослать? По почте?


_>Файл скачивается при нажатии на ссылку. Т.е. надо сделать некий FileResult, который не статический файл с диска отправляет, а то, что я описал.


Сохранить на диск и подсунуть FileResult.
Re[4]: Отправка файла пользователю.
От: michael_isu Беларусь  
Дата: 09.11.10 13:35
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, michael_isu, Вы писали:


L>>>Что значит отослать? По почте?


_>>Файл скачивается при нажатии на ссылку. Т.е. надо сделать некий FileResult, который не статический файл с диска отправляет, а то, что я описал.


L>Сохранить на диск и подсунуть FileResult.


Без диска бы хотелось...
Если все же через него делать и сохранять во временную директорию файлы, они оттуда как-то очищаются? по какому сценарию? Файлов может генерироваться много и не хотелось бы, чтобы закончилось место на диске.
Re[5]: Отправка файла пользователю.
От: Lloyd Россия  
Дата: 09.11.10 13:41
Оценка:
Здравствуйте, michael_isu, Вы писали:

_>>>Файл скачивается при нажатии на ссылку. Т.е. надо сделать некий FileResult, который не статический файл с диска отправляет, а то, что я описал.


L>>Сохранить на диск и подсунуть FileResult.


_>Без диска бы хотелось...


Ну, если excel умеет в stream сохранять, можно попробоватьч через MemoryStream

_>Если все же через него делать и сохранять во временную директорию файлы, они оттуда как-то очищаются? по какому сценарию? Файлов может генерироваться много и не хотелось бы, чтобы закончилось место на диске.


Если не ошибаюсь, через ActionFilter-ы можно отследить завершение запроса. Если не ошибаюсь, то организровать сборку мусора можно в таком фильтре.
Re: Отправка файла пользователю.
От: Дюша Россия http://www.danfoss.com/russia
Дата: 29.11.10 14:56
Оценка:
Здравствуйте, michael_isu, Вы писали:

Добавить HttpHandler, который будет рисовать, скажем, грид и потом его возвращать пользователю:
(заголовок вынесен, чтоб имя листа правильное давать. Если не требуется и можно оставить дефолтное, игнор)

    Private Sub ExportToXL()        
        Dim hw As New System.Web.UI.HtmlTextWriter(Page.Response.Output)
        Response.ContentEncoding = Encoding.UTF8
        Response.ContentType = "Application/x-msexcel"
        Response.AppendHeader("Content-Disposition", "attachment; filename=Report.xls")
        Response.Write(XLHeader("My Report"))
        Response.End()
    End Sub

    Public Function XLHeader(ByVal SheetName As String) As String
        Return "<html xmlns:o=""urn:schemas-microsoft-com:office:office""xmlns:x=""urn:schemas-microsoft-com:office:excel"" xmlns=""http://www.w3.org/TR/REC-html40"" ><head><meta http-equiv=Content-Type content=""text/html; ""><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>" + SheetName + "</x:Name><x:WorksheetOptions><x:DisplayLeftToRight/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body></body></html>"
    End Function

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.