Открыть файл Excel во временном файле - PullRequest
0 голосов
/ 22 октября 2018

Я уже некоторое время использую Excel Interop, но по некоторым причинам решил начать использовать библиотеку EPPLUS.Мне это нравится, но я хотел бы открыть файлы Excel так же, как это делает Excel Interop: открыть файл как временный файл, которого на самом деле нигде не существует.Пока что 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 голосов
/ 22 октября 2018

Решение довольно простое.Просто установите атрибуты файла в нормальное состояние перед удалением.Это как-то сообщит 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 только для чтения.Пользователь сможет сохранить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...