1

我正在尝试创建一个 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;
}

就像我之前说的。xlsx在我的 C:\ 磁盘上本地创建文件有效。但是我怎样才能强制下载创建的xlsx文件呢?

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

4

1 回答 1

1

倒带:

stream.Position = 0;
return stream;
于 2012-09-12T11:07:37.967 回答