Excel Interop - 保存前设置文件名

Excel Interop - Set filename before saving

是否可以在文件保存前设置 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!";

是否可以在保存前预定义此名称?

谢谢。

您必须使用 saveas 以您想要的文件名保存文件。然后当用户点击保存时,它只会更新之前创建的文件。不幸的是没有其他办法。这是代码:

workbook.SaveAs(Filename: FILENAMEHERE);

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

不幸的是,没有明确的、万无一失的方法可以在保存之前执行此操作。最接近的是使用模板。如果您有一个名为 FOO.xltx 的模板,您可以像这样创建工作簿:

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

唯一的怪癖是新文档的名称将附加一个递增的数字(第一次是FOO1,然后是FOO2FOO3,等等)。

要创建模板,只需创建一个新文档,然后在保存时,从 Save as type 下拉列表中选择 select Excel Template (*.xltx)