Мне нужно создать метод, который получит модель, построит excel из него (создание и получение части выполняется без проблем), а затем экспорт (пусть пользователь загружает его) с использованием памяти (без сохранения на сервере). Я новичок в ASP.NET и MVC, поэтому я нашел руководство и построил это как проект учебника:C# Asp.NET MVC загрузка файла excel с использованием FileStreamResult
public FileResult Download()
{
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1] = "ID";
xlWorkSheet.Cells[1, 2] = "Name";
xlWorkSheet.Cells[2, 1] = "1";
xlWorkSheet.Cells[2, 2] = "One";
xlWorkSheet.Cells[3, 1] = "2";
xlWorkSheet.Cells[3, 2] = "Two";
var path = "C:\\Work-Work\\TestFolder\\XCLbuildTry1\\csharp-Excel.xls";
xlWorkBook.SaveAs(path);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkSheet);
Marshal.ReleaseComObject(xlWorkBook);
Marshal.ReleaseComObject(xlApp);
return File(path, "application/vnd.ms-excel", "WidgetData.xlsx");
}
Теперь мне нужно изменить этот код, чтобы сделать этот метод послал мой файл первенствовать без сохранения моего файла первенствовать на сервере , Я попробовал google некоторые руководства и ответы здесь, в стеке, но пока я не могу найти решение, которое я могу реализовать.
Я думаю, что я должен использовать FileStreamResult
, но все руководства не дают никакой конкретной информации о создании и вставке моего файла в поток.
Похоже, он будет работать хорошо, однако мой 'worksheet' заблокирован режиме 'только для чтения'. Я попробовал некоторые решения в стеке: http://stackoverflow.com/questions/20751808/make-column-or-cells-readonly-with-epplus -> Не дает никакого результата, но никаких предупреждений тоже нет http: //stackoverflow.com/questions/19999531/how-to-create-readonly-excel-sheet-using-c-sharp-net -> Предоставляет предупреждение 'Нет определения' http://stackoverflow.com/questions/18059979/create-a-excel-file-with-epplus-but-it-is-always-read-only -> Я понятия не имею, как браузер может заставить VS давать предупреждения по моему коду (последний ответ) – rainbowShiningUnicorn
@rainbowShiningUnicorn листы только для чтения или все книги прочитаны только при сохранении? – Chawin
Свойство 'Cells' имеет только метод' get'. – rainbowShiningUnicorn