显示“另存为对话框”在关闭EPPlus创建的Excel文件之前(没有宏)
本文关键字:文件 Excel 创建 对话框 另存为 EPPlus 显示 | 更新日期: 2023-09-27 18:17:02
是否有可能创建和打开由EPPlus生成的XLSX(不是宏)文件,在关闭Excel之前强制显示"另存为对话框"?
我的场景:
我用EPPlus创建了XLSX文件,并将其存储到应用程序的临时文件夹中。然后我立即调用这个文件运行(Excel将打开,我的文件被加载)。没有任何改变,我关闭Excel -在这一刻,我想强制对话框"另存为"保存这个文件到其他目录(不是我的临时)。你能通过文件的任何属性(或其他方式)强制显示这个对话框吗?
求解XLSM:
如果有人需要使用EPPlus显示Excel宏文件(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()
你能帮我处理一下宏文件吗?(但也许这是不可能的)
谢谢。
我根据你的回答做了什么?
我尝试使用SaveAs
(而不是原来的.Save()
)从EPPlus:
System.IO.FileInfo fileInfo = new System.IO.FileInfo(targetTemporaryFile);
if (fileInfo.Exists) { fileInfo.Delete(); }
Package.SaveAs(fileInfo);
有一种方法可以将与包对应的FileInfo对象标记为只读- myFile.IsReadOnly = True
这样,如果用户试图保存文件,他们将得到save As..对话框。我在内部网的网页上使用它,保存文件,然后向用户提供指向FileInfo.FullName
属性的链接