2013-09-27 88 views
1

我正在創建excel併爲其填充值。我正在使用EPPlus。 我可以使用filestream保存並打開它。 但我想打開它而不保存。 我以爲我們可以用某種方式直接生成excel。 請指導。流向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); 
+0

'打開它不保存'我不知道這是什麼意思。 – tnw

+0

我想將excel顯示爲Book1而不是somefilename.xlsx,並顯示消息以在關閉之前保存生成的Excel。 – rahuzz

回答

1

您可以生成excel文件,並選擇不保存它,但Excel不能沒有被保存在磁盤上打開的文件(就變成了「文件」時,它在磁盤上),因此,在短期 - 你必須保存文檔才能在Excel中打開它。

如果您擔心在硬盤上存儲數據,作爲替代選擇,您可以在您信任的介質上創建數據源,然後創建一個xslx,以指示Excel在打開工作表時指示使用該數據源(而不是創建預填充數據的文件)。但這是一個完整的故事......

+0

感謝您的回覆veljkoz ..我想顯示excel作爲Book1而不是somefilename.xlsx,並顯示消息以在關閉之前保存生成的excel。我如何在數據源中保存我的excel格式化值? – rahuzz