1
我需要建立一個方法,將接收模式Excel文件,建立從它(建築和接收部分是沒有問題的完成)Excel,然後出口使用內存(讓用戶下載)流(不保存在服務器上)。我是新來ASP.NET和MVC,所以我發現引導和建造這是一個教程項目:C#Asp.NET MVC下載使用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");
}
現在我需要改變這個代碼,以使這種方法讓我的Excel文件,但不保存在服務器上我的Excel文件。我試圖谷歌一些指南和答案在這裏,堆棧,但現在我找不到解決方案,我可以實現。
我想我應該用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 - >給出警告'不definition' http://stackoverflow.com/questions/18059979 /創建-AN-Excel的文件與-epplus,但是,它 - 是 - 總是隻讀 - >我不知道,瀏覽器如何讓VS給出我的代碼(最後答案)警告 – rainbowShiningUnicorn
@rainbowShiningUnicorn是的工作表是隻讀還是整個工作簿只有在保存時纔讀取? – Chawin
屬性'Cells'只有'get'方法。 – rainbowShiningUnicorn