无法打开导出的xlsx文件

时间:2014-07-31 17:11:25

标签: c# excel

我尝试使用xlsx格式导出到excel,但在尝试打开文件时出现此错误。 Excel无法打开文件' CertificationMetricsReport.xlsx'因为文件格式或文件扩展名无效。验证文件是否已损坏,文件扩展名是否与文件格式匹配。

如果我将提供文件名CertificationReport.xls,那么我可以打开它。

以下是代码段

 public void RenderedReportContent(byte[] fileContent)
    {
        try
        {
            Response.Clear();
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("Content-Length", fileContent.Length.ToString());
            Response.AddHeader("Content-Disposition", "attachment; filename="CertificationReport.xlsx");
            Response.BinaryWrite(fileContent);
            Response.End();
        }
        catch (Exception ex)
        {
            if (!(ex is System.Threading.ThreadAbortException))
            {
                //Other error handling code here
            }
        }
    }

当我尝试下载CertificationMetricsReport.xls时,它可以正常工作。

请帮我下载xlsx文件。

1 个答案:

答案 0 :(得分:2)

也许您可以尝试更改内容类型

到contenttype =" application / vnd.ms-excel&#34 ;; 或application / octect-stream

                    Response.Clear();
                    Response.Buffer = True;
                    Response.ContentType = "application/octet-stream";
                    Response.AddHeader("Content-Disposition", "attachment;filename=yourfile.xslx"
                    Response.BinaryWrite(YourFile);
                    Response.End();

你也可以尝试使用response.flush

最后在IE,Chrome,Firefox等其他导航器中尝试...

编辑:http://social.msdn.microsoft.com/forums/en-US/3d539969-51c4-42bc-8289-6d70d8db7aff/prompt-while-downloading-a-file-for-open-or-save EDIT2:How to send file in HttpResponse?