2014-01-09 77 views
0

我一直在使用Microsoft.Office.Interop.Excel從我的Winforms應用程序導出數據。我喜歡它,因爲我可以在不寫入文件系統的情況下導出和顯示數據。不幸的是,Excel實例不像我想要的那樣清理。導出到CSV而不寫入文件系統

我想創建一個CSV文件。我可以這樣做,但是我的要求是在任何程序中處理用戶計算機上的CSV文件時立即顯示數據,但除非用戶決定保存文件,否則不要保存該文件。

這是可能的,如果是的話如何?

如果不是,我將不勝感激關於如何處理這種情況的任何建議。

+0

這聽起來像你需要的是行和Excel中的單元格。它作爲一個CSV存在(在磁盤上或沒有)作爲中間步驟似乎無關緊要。只需通過互操作將值放入電子表格即可。 –

+0

當用戶關閉應用程序時,Excel實例不會清理。我也不想確保在每個使用該應用程序的工作站上安裝Excel。 –

回答

1

我會做的是「串行化」我的課,如果我有任何或創建我的CSV「手動」,以避免使用Excel可能使用類似:

http://www.codeproject.com/Articles/566656/CSV-Serializer-for-NET

我會保存此成一個MemoryStream和當用戶決定保存到這個保存時,我會將MermoryStream移動到一個文件,如:

using (FileStream file = new FileStream("somename.csv", FileMode.Create, FileAccess.Write)) { 
    myMemoryStream.WriteTo(file); 
} 
0

我認爲「無論程序」是什麼問題。一個特定的程序會給你(或不)一個API,就像Excel一樣。

保存文件,你可以使用「System.Diagnostics.Process.Start(pathOfTheCsv)」,操作系統會做魔術(具有適當的權限)。但你不想保存文件...

你可以使用谷歌文檔?你可以使用可用的API。