读取内存流

时间:2012-09-12 11:01:39

标签: c# stream epplus

我正在尝试创建一个excel文件,并将其作为下载提供。但我在下载部分遇到了一些麻烦。

我正在使用EPPlus来创建xml文件。我有那个工作。但就在当地。我不确定如何强制下载文件。

这是我的代码:

public Stream GetXlsxDocument(IQueryable data)
{
    const string sheetName = "Sheet1";
    var localFile = new FileInfo(@"C:\test2.xlsx");
    var file = new FileInfo("test2.xlsx");
    // Used for local creation
    //ExcelPackage p = new ExcelPackage();
    MemoryStream stream = new MemoryStream();
    using (ExcelPackage p = new ExcelPackage(stream))
    {
        p.Workbook.Worksheets.Add("Sheet1");
        ExcelWorksheet ws = p.Workbook.Worksheets[1];
        ws.Name = sheetName;
        ws.Cells.Style.Font.Size = 11;
        ws.Cells.Style.Font.Name = "Calibri";
        ws.SetValue(1, 1, "aaa"); // Test data
        // Used for local creation
        //p.SaveAs(localFile);
        p.SaveAs(stream);
    }
    return stream;
}
像我之前说过的那样。在我的C:\磁盘上本地创建xlsx文件。但是,我如何强制下载创建的xlsx文件?

现在它给我一个0字节的xlsx文件。我需要返回一个非空的流。任何人都知道我怎么能做到这一点.. ??

1 个答案:

答案 0 :(得分:1)

回放它:

stream.Position = 0;
return stream;