在临时文件中打开Excel文件

时间:2018-10-22 16:25:41

标签: c# excel epplus

我已经使用Excel interop已有一段时间了,但是出于某些原因,我决定开始使用EPPLUS库。 我喜欢它,但我想用Excel Interop一样的方式打开excel文件:将文件作为一个临时文件打开,该文件在任何地方都不存在。 到目前为止,EPPLUS必须将文件保存在某个位置,以便我可以使用以下命令打开文件:

System.Diagnostics.Process.Start()

到目前为止,我尝试的是在打开文件后删除文件:

excelPack.SaveAs(new FileInfo(name));                                                          
File.SetAttributes(name, FileAttributes.ReadOnly); //Force the user to save file As                                        
System.Diagnostics.Process.Start(name);                                                                         
File.Delete(name); //Crash here. File is in use

但是您可以看到,由于文件已打开,它在最后一行崩溃了。

1 个答案:

答案 0 :(得分:1)

解决方案非常简单。只需在删除文件之前将文件属性设置为正常即可。这将以某种方式告诉Windows该文件不再使用:

                excelPack.SaveAs(new FileInfo(name));                                                          
                File.SetAttributes(name, FileAttributes.ReadOnly); //Force the user to save file As                                        
                System.Diagnostics.Process.Start(name);
                File.SetAttributes(name, FileAttributes.Normal);                                                                     
                File.Delete(name); 

该文件将被删除,但仍将在Excel中以只读方式打开。用户将可以保存它。