我正在尝试创建一个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
文件。我需要返回一个非空的流。任何人都知道我怎么能做到这一点.. ??
答案 0 :(得分:1)
回放它:
stream.Position = 0;
return stream;