在closures由EPPlus创build的Excel文件之前显示“另存为对话框”(没有macros的方式)

在closuresExcel之前,是否有可能创build并打开由EPPlus生成的XLSX(非macros)文件,并强制显示“另存为对话框”?

我的场景:
我用EPPlus创buildXLSX文件并将其存储到我的应用程序的临时文件夹中。 然后我立即调用这个文件运行(Excel将打开,我的文件被加载)。 没有任何更改,我closures了Excel – 在这一刻我想强制对话框“另存为”将此文件保存到其他目录(不是我的临时)。 你能强制显示这个对话框的文件的任何属性(或其他方式)?

解决了XLSM:
如果您需要某人使用EPPlus显示Excelmacros文件(XLSM)的“另存为”对话框,则可以这样:

OfficeOpenXml.ExcelPackage Package; Package.Workbook.CreateVBAProject(); OfficeOpenXml.VBA.ExcelVBAModule excelVbaModule = Package.Workbook.VbaProject.Modules.AddModule("Module1"); StringBuilder mac = new StringBuilder(); mac.AppendLine("Sub Auto_Close()"); mac.AppendLine("Application.Dialogs(xlDialogSaveAs).Show"); mac.AppendLine("End Sub" ); excelVbaModule.Code = mac.ToString(); Package.Save() 

你能不能帮助我的macros文件? (但也许这是不可能的)
谢谢。

我根据你的回答做了什么?
我尝试从EPPlus中使用SaveAs (而不是原始的.Save() ):

 System.IO.FileInfo fileInfo = new System.IO.FileInfo(targetTemporaryFile); if (fileInfo.Exists) { fileInfo.Delete(); } Package.SaveAs(fileInfo); 

但是没有显示对话框。

有一种方法可以将与Package对应的FileInfo对象标记为只读 – myFile.IsReadOnly = True

这样,如果用户试图保存文件,他们将被给予另存为..对话框。 我通过保存文件然后交给用户一个链接到FileInfo.FullName属性来在我们的Intranet的网页上使用它