2017-05-12 91 views
0

可以在保存文件前設置excel文件名嗎?Excel互操作 - 保存前設置文件名

我有以下簡單的代碼:

using Excel = Microsoft.Office.Interop.Excel; 

Excel.Application excel = new Excel.Application(); 
excel.Visible = true; 
Excel.Workbook workbook = excel.Workbooks.Add(Excel.XlSheetType.xlWorksheet); 
Excel.Worksheet sheet = workbook.Sheets[1]; 

sheet.Cells[1, 1] = "Hello World!"; 

是否有可能在保存之前預定義這個名字呢?

enter image description here

感謝。

+0

['Workbook.SaveAs()'](https://msdn.microsoft.com/en-us/library/office/ff841185.aspx) – gravity

回答

2

沒有明確的,萬無一失的方式做到這一點之前保存,很遺憾。你可以最近的就是使用模板。如果你有一個名爲FOO.xltx模板,您可以創建您的工作簿是這樣的:

Application.Workbooks.Add "X:\path\to\FOO.xltx" 

唯一的怪癖是,新文件的名稱將與遞增的數字(FOO1第一次,然後FOO2追加, FOO3等)。

要創建模板,只需創建一個新文檔,並在保存時從下拉列表中選擇Excel Template (*.xltx)

+0

謝謝@MichaelGunter,這正是我所期待的。還有一個問題,有沒有辦法在最後保存文件時沒有增加數字:'(FOO1第一次,然後是FOO2,FOO3等)'。謝謝。 –

+0

否.Excel將在保存/另存爲對話框中自動添加號碼。 –

1

必須使用saveas才能將文件保存爲所需的文件名。然後,當用戶點擊保存時,它只會更新先前創建的文件。不幸的是,沒有其他辦法。下面是代碼:

workbook.SaveAs(Filename: FILENAMEHERE); 

這裏是它的MSDN文檔:https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.saveas.aspx

+0

謝謝,但它不完全是我所需要的。 在這種情況下,我們已經保存文件,在我的情況下,我想打開工作表爲**未保存**文檔。如果我想關閉Excel,我希望得到這個模式:[Image](http://img.in6k.com/screens/EXCEL_2017-05-12_21-59-00.png) –

+0

@RostislavOlshevsky,請闡明你對「保存更改」對話框的意圖。您是否想要阻止對話框或強制它在關閉工作簿時顯示,即使它已保存? – TnTinMn

+0

@TnTinMin理想情況下,我不想保存文件。我只想用數據打開Excel,就像我上面的例子。在這種情況下,當Excel會建議我保存文件時,我想要保存一些預定義的文件名。 (如果這是不可能的,那麼關於您的選項,對我來說更可取:「強制它在關閉工作簿時顯示,即使它已被保存」)。 –