在临时文件中打开 excel 个文件

Open excel file in a temporary file

我已经使用 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

但是如您所见,由于文件已打开,它在最后一行崩溃了。

解决方法很简单。只需在删除文件之前将文件属性设置为正常即可。这将以某种方式告诉 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 中以只读方式打开。用户将能够保存它。