我正在使用ClosedXML创建Excel文件,我想打开创建的工作簿而不将其保存到服务器。因此,有机会在不将其保存到任何地方的情况下打开ClosedXML创建的WorkBook吗?我的猜测是会使用内存,但是您该怎么做?
wb.SaveAs(filePath);
System.Diagnostics.Process.Start(filePath);
im现在在保存它的同时打开它,但是由于很少有人可以使用该程序并尝试同时获取excel文件,因此会导致错误。那么有没有办法打开用ClosedXML创建的WorkBook文件而不保存它呢?
答案 0 :(得分:0)
您可以将WorkBook保存到MemoryStream。
wb.SaveAs(new MemoryStream());
但是随后您需要一些程序来观看文件(字节)
为避免其他用户尝试访问文件时出现异常,您应该编写一种方法来等待文件被释放。
建议:https://www.codeproject.com/Tips/164428/C-FileStream-Lock-How-to-wait-for-a-file-to-get-re
答案 1 :(得分:0)
如果您的主要问题是“很少有人会使用该程序并试图同时获取excel文件,这会导致错误”,那么您每次都可以简单地生成唯一的文件名(例如,使用GUID)
ClosedXML确实支持将文件保存在内存流中,但是Excel不会将其视为有效的数据源。