Я загружаю данные в шаблон Excel, хранящийся на сервере, и загружаю их с помощью FileStreamResult. Я хочу скачать Excel только для чтения. Чтобы сделать только чтение, когда я попробовал, путь спрашивает, но я не знаю, где пользователь может загрузить его в свою систему с сервера. Итак, как я могу сделать файл только для чтения?
Я могу загрузить файл только для чтения, но он запрашивает приглашение типа «Хотите сохранить изменения или открыть только для чтения?» Я не хочу, чтобы этот запрос и файл открывались напрямую с помощью только для чтения.
Я пытался использовать макрос
Но он просит подсказать сохранить изменения.
Поскольку я не знаю путь, поскольку пользователь будет загружать с сервера в его конкретное местоположение. Итак, как я могу сделать это только для чтения без использования пути r имя файла?
Контроллер:
System.IO.Stream spreadsheetStream = new System.IO.MemoryStream ();
XLWorkbook wb = новая XLWorkbook (Server.MapPath ("~ / XlsReport / Report_Template.xlsm"));
..... (загрузка данных в рабочие таблицы) ...
wb.SaveAs(spreadsheetStream);
spreadsheetStream.Position = 0;
return new FileStreamResult(spreadsheetStream,"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "Report.xlsm" };
Макро:
Private Sub Workbook_Open()
ThisWorkbook.ChangeFileAccess xlReadOnly
End Sub
Загруженный файл просит сохранить изменения. Он должен быть открыт как ReadOnly без каких-либо подсказок.