2015-05-16 2 views
1

После добавления всего, что я хочу, чтобы создать новый файл excel с epplus, как его открыть? Я не хочу сначала сохранить файл, а затем открыть его, возможно ли это? Я хочу, чтобы он просто открыл и разрешил пользователю решить, хочет ли он его сохранить или нет.Создайте временный файл excel с epplus?

Единственный код, который я нашел и попробовал до сих пор, генерирует имя файла, сохраняет файл excel и открывает его.

Byte[] bin = p.GetAsByteArray(); 
string file = Guid.NewGuid().ToString() + ".xlsx"; 
File.WriteAllBytes(file, bin); 
ProcessStartInfo pi = new ProcessStartInfo(file); 
Process.Start(pi); 

ответ

0

это не возможно, вы не можете создать временный Excel файл с epplus

3

EPPlus генерирует XML-файл в переименованной почтовый файл, поэтому нет никакого механизма для передачи его в Excel без сохранения его где-нибудь. Но вы всегда можете сохранить папку временных файлов пользователей - это то, что большинство программ нужно делать в какой-то момент, чтобы передавать файлы друг с другом. Можно сделать что-то подобное с помощью System.IO.Path.GetTempPath():

[TestMethod] 
public void TempFolderTest() 
{ 
    var path = Path.Combine(Path.GetTempPath(), "temp.xlsx"); 
    var tempfile = new FileInfo(path); 
    if (tempfile.Exists) 
     tempfile.Delete(); 

    //Save the file 
    using (var pck = new ExcelPackage(tempfile)) 
    { 
     var ws = pck.Workbook.Worksheets.Add("Demo"); 
     ws.Cells[1, 2].Value = "Excel Test"; 
     pck.Save(); 
    } 

    //open the file 
    Process.Start(tempfile.FullName); 
} 

(взято из: Open ExcelPackage Object with Excel application without saving it on local file path)