无需存储即可实现卓越

我正在创buildexcel并为其填充值。 我正在使用EPPlus。 我可以使用filestream保存并打开它。 但我想打开它而不保存。 我以为我们可以用某种方式直接生成excel。 请指导。

try { MemoryStream newFile = new MemoryStream(); using (ExcelPackage package = new ExcelPackage(newFile)) { // Add Data Collection worksheet ExcelWorksheet dataWorksheet = package.Workbook.Worksheets.Add("Sheet1"); dataWorksheet.Cells[1, 1].Value = " My Text"; dataWorksheet.Cells[1, 1].Style.Font.Size = 14; dataWorksheet.Cells[3, 1].Value = BALGlobalVariables.cocName; dataWorksheet.Cells[5, 1].Value = "IR From Date :"; dataWorksheet.Cells[6, 1].Value = "IR To Date : "; dataWorksheet.Cells[5, 6].Value = "From Date :"; dataWorksheet.Cells[6, 6].Value = "To Date : "; dataWorksheet.Cells[5, 2].Value = fromDate; dataWorksheet.Cells[6, 2].Value = toDate; dataWorksheet.Cells[5, 7].Value = invFromDate; dataWorksheet.Cells[6, 7].Value = invFromDate; // Template specific excel generation goes in here FillPurchaseExcelData(ref dataWorksheet, masterTable, subTable); // save package package.Save(); } byte[] fileContent = newFile.ToArray(); #if DEBUG string tempName = "MTemp.xlsx"; string tempFileName = System.IO.Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) + @"\" + tempName; //Write the stream data of workbook to the root directory using (FileStream file = new FileStream(tempFileName, FileMode.Create)) { file.Write(fileContent, 0, fileContent.Length); } System.Diagnostics.Process.Start(tempFileName); 

您可以生成excel文件并select不保存它,但是Excel不能打开没有保存在磁盘上的文件(当它在磁盘上时它变成了“文件”),所以简而言之,您必须保存文件以便在Excel中打开它。

如果您担心将数据存储在硬盘驱动器上,则可以select在您信任的介质上创build数据源,然后创build一个xslx,指示Excel在打开工作表时使用该数据源(而不是创build文件预填充数据)。 但是这是另外一个故事