无法下载test.xlsx - EPPlus

时间:2012-12-11 17:43:13

标签: vb.net epplus

当我尝试打开由下面的代码创建的test.xlsx时,我得到“test.xlsx无法下载”。也就是说,如果我选择保存文件,我可以保存并打开文件。

请让我知道我做错了什么。

谢谢!

    Dim pack As New ExcelPackage
    Dim ws As ExcelWorksheet = pack.Workbook.Worksheets.Add("Sheet1")
    Dim ms As New MemoryStream
    Dim dt As New DataTable

    ws.Cells(1, 1).Value = "Test"

    pack.SaveAs(ms)

    ms.WriteTo(Context.Response.OutputStream)

    Context.Response.Clear()
    Context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
    Context.Response.AddHeader("Content-Disposition", "attachment;filename=test.xlsx")
    Context.Response.StatusCode = 200
    Context.Response.End()

2 个答案:

答案 0 :(得分:0)

我可能错了,但您将文件写入Response.OutputStream然后调用Response.Clear,因此我认为您的respose标头正在发送时没有内容(没有文件)这就是为什么它说“无法下载”。

尝试将ms.WriteTo移至Response.End

之前

答案 1 :(得分:0)

以下示例代码应该完成这项工作:

Using pkg = New ExcelPackage()
    Dim ws = pkg.Workbook.Worksheets.Add("Sheet 1")
    ws.Cells(1, 1).Value = "Hello"

    Dim buf = pkg.GetAsByteArray()

    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment;filename=test.xlsx")
    Response.ContentType = MimeMapping.GetMimeMapping("*.xlsx")
    Response.BinaryWrite(buf)
    Response.Flush()
    Response.[End]()
End Using