2017-05-12 45 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会建议我保存文件时,我想要保存一些预定义的文件名。 (如果这是不可能的,那么关于您的选项,对我来说更可取:“强制它在关闭工作簿时显示,即使它已被保存”)。 –