如何在不保存的情况下使用C#使用内存打开创建的WorkBook?

时间:2019-05-02 08:28:33

标签: c# excel memorystream closedxml

我正在使用ClosedXML创建Excel文件,我想打开创建的工作簿而不将其保存到服务器。因此,有机会在不将其保存到任何地方的情况下打开ClosedXML创建的WorkBook吗?我的猜测是会使用内存,但是您该怎么做?

wb.SaveAs(filePath);      
System.Diagnostics.Process.Start(filePath);

im现在在保存它的同时打开它,但是由于很少有人可以使用该程序并尝试同时获取excel文件,因此会导致错误。那么有没有办法打开用ClosedXML创建的WorkBook文件而不保存它呢?

2 个答案:

答案 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不会将其视为有效的数据源。