2016-05-13 44 views
0

我有一個按鈕,用戶按下併發送一個網格到Excel,它將文件保存在我不希望用戶有權訪問的目錄中。 (這是一個隱藏的共享)然後立即打開文件供用戶查看。如何指定Excel文件SaveAs對話框的默認目錄?

我正在使用Microsoft.Office.Interop.Excel命名空間,所以我正在使用Excel應用程序和工作簿。

我想讓應用程序從目錄中打開文件,但是如果用戶選擇使用SaveAs保存文件(我寧願如果用戶單擊保存,它將它視爲新文件並打開SaveAs對話框),我想最初的目錄是類似C :.

這是一個有點相關的代碼:

Public Sub sendToExcel() 

     'Code here that exports data to Excel 

     Dim xlApp As Excel.Application = New Excel.Application() 
     Dim xlWorkbook As Excel.Workbook = xlApp.Workbooks.Open(filePath) 

     xlApp.Visible = True 

End Sub 

我試過最明顯的事情是這樣的:

xlApp.DefaultFilePath = "C:\"

這似乎如果該文件是新的唯一工作(尚未保存)。

有什麼建議嗎?

+0

你是否被迫爲此使用Excel互操作庫?爲什麼不使用SaveFileDialog,然後使用結果將工作簿保存到選擇的文件中? – Steve

+0

也許?我的第一個想法是使用Process.Start(filePath),但我失去了對文件進行任何更改的能力,所以我去了解我所知道的其他內容,即使用Excel進行互操作。發送到Excel的要點是立即打開文件進行查看,以便將文件保存在共享中,然後從此處打開。但是,這使用戶可以訪問該目錄。 –

+0

我想知道我試圖完成的是用戶點擊發送網格到Excel並立即打開而不詢問要保存的位置。 –

回答

0

該文件是否必須保存在該隱藏的共享中?

如果不是,您可以使用Path.GetTempFileName()將它保存在用戶的臨時文件夾中,然後從那裏用Excel打開它。

這樣,當他們「另存爲」時,他們只會看到本地臨時文件夾作爲源。

當然,這隻適用於桌面應用程序。

+0

我原本打算這樣做,但我不希望用戶的臨時文件夾滿足發送給Excel的任何內容。我將在關閉文件後刪除文件,但這會阻止我的應用程序在文件仍處於打開狀態時使用。雖然總是有一些解決辦法,所以也許我需要更多地考慮這一點。 –

+0

您可以在主窗體的關閉事件 – Disman38

+0

上清理它,我也考慮過這樣做,但絕對會讓用戶能夠在不關閉已打開的文件的情況下關閉程序。 –

相關問題