Excel互操作 - 保存前设置文件名

3

在文件保存之前设置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

谢谢。


2个回答

2

很遗憾,在保存之前没有明确、可靠的方法来做到这一点。最接近的方法是使用模板。如果你有一个名为FOO.xltx的模板,你可以像这样创建你的工作簿:

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

唯一的问题是,新文档的名称将附加一个递增的数字(第一次为 FOO1,然后是 FOO2FOO3等)。
要创建模板,只需创建一个新文档,在保存时从“另存为类型”下拉菜单中选择“Excel 模板 (*.xltx)”。

谢谢@MichaelGunter,这正是我要找的。还有一个问题,有没有办法在不增加结尾数字的情况下保存文件:(第一次为FOO1,然后是FOO2,FOO3等)。谢谢。 - Rostislav Olshevsky
不需要。在保存/另存为对话框中,Excel会自动追加数字。 - Michael Gunter

1

谢谢,但这不是我需要的。在这种情况下,我们已经保存了文件,而在我的情况下,我想将工作表作为未保存文档打开。如果我想完全关闭Excel,我希望得到这个模态框:图片 - Rostislav Olshevsky
@RostislavOlshevsky,请澄清您关于“保存更改”对话框的意图。您是想防止该对话框的出现,还是强制在关闭工作簿时显示它,即使已经保存了? - TnTinMn
@TnTinMin,理想情况下我根本不想保存文件。我只是想像上面的例子一样打开带有数据的Excel。而且在这种情况下,当Excel建议我保存文件时,我想要有一些预定义的文件名来保存。(如果这是不可能的,那么根据您的选项,对我来说最好的选择是:“即使已经保存了工作簿,也强制其在关闭时显示”)。 - Rostislav Olshevsky
@RostislavOlshevsky,我仍然不清楚您在最后的评论中希望实现什么,因为对我来说,您似乎既想保存它,又不想保存它。如果这个陈述:“理想情况下,我根本不想保存文件”是您的目标,那么只需设置WorkbookReference.Saved = True1即可。这将允许您关闭工作簿而无需提示,假设在设置该属性和关闭工作簿之间没有进行任何更改。 - TnTinMn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接