• C# Aspose.Cells导出xlsx格式Excel,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”


    报错信息:

    最近打开下载的 Excel,会报如下错误。(xls 格式不受影响)

    解决方案:

    下载代码(红色为新添代码)

    public void download()
    {
        string fileName = "456.zip";//客户端保存的文件名
        string filePath = AppDomain.CurrentDomain.BaseDirectory.Replace("\", "/") + "Excel/123.zip";
    
        System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
    
        if (fileInfo.Exists == true)
        {
            //每次读取文件,只读取1M,这样可以缓解服务器的压力
            const long ChunkSize = 1048576;
            byte[] buffer = new byte[ChunkSize];
    
            Response.Clear();
            //获取文件
            System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);
            //获取下载的文件总大小
            long dataLengthToRead = iStream.Length;
            //二进制流数据(如常见的文件下载)
            Response.ContentType = "application/octet-stream";
            //通知浏览器下载文件而不是打开 
            Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
            //加上设置大小下载下来的.xlsx文件打开时才不会报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”
            Response.AddHeader("Content-Length", iStream.Length.ToString());
            using (iStream)//解决文件占用问题,using 外 iStream.Dispose() 无法释放文件
            {
                while (dataLengthToRead > 0 && Response.IsClientConnected)
                {
                    int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小
                    Response.OutputStream.Write(buffer, 0, lengthRead);
                    Response.Flush();
                    dataLengthToRead = dataLengthToRead - lengthRead;
                }
                iStream.Dispose();
                iStream.Close();
            }
    
            Response.Close();
            Response.End();
        }
    }

    给下载加了个长度,解决问题。

    Response.AddHeader("Content-Length", iStream.Length.ToString());

    原文:asp.net NPOI导出xlsx格式文件,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”

  • 相关阅读:
    [转]子网掩码与子网划分
    子网划分的两个例子
    浅谈算法和数据结构系列汇总(转)
    拓扑排序和关键路径
    生成树及最小生成树
    图的遍历
    单选按钮的显示与隐藏列项
    CSS3实现鼠标移动到图片上图片变大
    优酷的视频地址获取接口
    提交按钮ajax方式
  • 原文地址:https://www.cnblogs.com/cang12138/p/9003362.html
Copyright © 2020-2023  润新知