2013-08-22 47 views
1

我目前在我的應用程序中有一個選項可導出到Excel。它將數據保存到磁盤中的文件中。導出到excel打開它

我想打開Excel,並顯示數據。你們中的任何一個人都知道這是否可能以及如何實現?

我想我可以打開我已經保存到磁盤的文件,但它最好不要將文件保存到磁盤。

+0

我可以從個人的經驗告訴你,節約了扔掉到%TEMP%和它重新打開比上創建一個未保存的文件容易得多蒼蠅。 –

+0

Excel不工作的方式 - 它不能打開「文件」,這不是在磁盤上的某個地方...... –

+0

這是一個WPF的桌面應用程序。 – Omar

回答

2

我假設你正在使用Interop。只需將應用程序設置爲可見即可。

excelApp.Visible = true; 

其中

InteropExcel.Application excelApp; 

只記得釋放所有的COM引用,以便您的申請也沒有舉行手柄到Excel。這可能會導致您的Excel文件是隻讀的。

1

你目前如何創建你的文件?

如果您在使用Excel引擎或POI(或thier縮寫是什麼都)來創建一個XLS/XLSX這純粹是未保存工作簿,使實例可見(按以上)的情況下?

如果您不依賴或不想依賴於Excel(即使用第三方庫(如Syncfusion創建文件)或僅以CSV格式的excel可讀格式輸出數據),那麼我想,重卡與基於文件的操作...

作爲一個臨時文件比未保存的一個更簡單...數據需要在這兩種情況下,無論是簡單的CSV或Excel單元格的編碼羣被創建,所以我不太明白這是什麼意思。

0

文件請參閱下面的代碼打開的Excel不保存

System.Web.HttpContext.Current.Response.Clear(); 
    System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=DateTime.Now + ".xls"); 
    System.Web.HttpContext.Current.Response.Charset = ""; 

    Response.Cache.SetCacheability(HttpCacheability.NoCache); // If you want the option to open the Excel file without saving than  

    System.Web.HttpContext.Current.Response.ContentType = "application/vnd.xls"; 
    System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);   
    Gridview1.RenderControl(htmlWrite); 


    //style to format numbers to string 
    string style = @"<style> .textmode { } </style>"; 
    System.Web.HttpContext.Current.Response.Write(style); 
    System.Web.HttpContext.Current.Response.Output.Write(stringWrite.ToString()); 
    System.Web.HttpContext.Current.Response.Flush(); 
    System.Web.HttpContext.Current.Response.End();