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

Stella981
• 阅读 1178

报错信息:

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

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

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

解决方案:

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

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 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”

点赞
收藏
评论区
推荐文章
林末 林末
3年前
python读取excel数据转为json格式
做自动化时需要从excel读取数据;本文实现将excel文件数据读取为json格式,方便自动化调用读取xls文件使用xlrd读取xls文件代码:pythonimportxlrddefreadxls(file):实例化excelbookxlrd.openworkbook(file)下标读取sheetsheetb
Immortal Immortal
2年前
vue项目中使用element-ui实现excel表格上传
恰逢项目中要实现excel表格上传,度娘甚久,得此一文,留之。原文:https://blog.csdn.net/qq36718999/article/details/95387542需求vuecli搭建前端项目,并使用elementui实现本地excel表格上传。(1)限制上传文件只能是xls、xlsx格式;(2)限制上传文件大小不能超过2MB
Easter79 Easter79
2年前
vue+iview中的table表格导出excel表格
一、iveiw框架中table中有exportCsv()方法可以导出.csv后缀文件,类似于excel文件,但是并不是excel文件。二、实现table表格导出excel文件利用Blob.js和Export2Excel.js两个文件实现  1.Blob.js和Export2Excel.js文件    链接:https://pan.baid
Karen110 Karen110
2年前
python-docx无法处理 “doc格式” 文件,于是我这样做......
问题引入目前的日常工作中,见的最多的还是对Excel文件和Word文件的处理。对于Excel文件,如果出现xls、xlsx、xlsm混合文件应该怎么处理?对于Word文件,出现doc和docx的混合文件,又该怎么处理。你可能会用VBA,但是不得不说,批量操作这些文件,还是要学Python,操作真的很简单。为了增强文章的可读性,我们分2篇文章讲述这些问题
CuterCorley CuterCorley
3年前
商业数据分析从入门到入职(2)Excel基础
一、Excel介绍1.Excel简介Excel不仅仅只是存放数据的工具,其功能特别强大,甚至可以做出美观的仪表盘,如下:甚至还可以用Excel作画,可点击查看,如下:Excel存在很多版本,如2003、2007、2010、2016、2019等,一般向下兼容,不同系统的兼容性可能存在问题。文件类型主要包括xls、xlsx等。一个Excel表格
Stella981 Stella981
2年前
ABAP学习(16):ABAP2XLSX,操作excel
ABAP2XLSX   ABAP2XLS是一个操作EXCEL的开源项目,相比较OLE2和DOI方式操作excel更加方便。   ABAP中搜索ZDEMO\_EXCEL\搜索Program可以查看SAP提供的示例程序,实现多种Excel。1.创建excel   Excel类:zcl\_excel类
Stella981 Stella981
2年前
Python 操作excel
python操作excel使用xlrd、xlwt和xlutils模块。xlrd模块是读取excel的,xlwt模块是写excel的,xlutils是用来修改excel的一、python 读取excelimportxlrdbookxlrd.open_workbook('all_stu.xls')打开一个excelsheetb
Stella981 Stella981
2年前
Python操作Excel
前言:Python操作Excel使用openpyxl模块,python中有好几个与excel相关操作的模块。xlrd库:从excel中读取数据,支持xls、xlsx格式。xlwt库:对excel进行修改操作,不支持对xlsx格式的修改。xlutils库:在xlrd和xlwd中对一个已存在的文件进行修改。openpyxl库:
Wesley13 Wesley13
2年前
Java 复杂excel报表导出
MyExcel,是一个可直接使用Html文件,或者使用内置的Freemarker、Groovy、Beetl等模板引擎Excel构建器生成的Html文件,以Html文件中的Table作为Excel模板来生成任意复杂布局的Excel的工具包,支持.xls、.xlsx格式,支持对背景色、边框、字体等进行个性化设置,支持合并单元格。Github:https:/
Wesley13 Wesley13
2年前
UTF
  最近工作中需要将一些数据写入CSV文件中,并要使用Excel打开进行查看。测试时发现,导出的CSV文件用Excel打开后,中文字符全部是乱码。写入CSV文件的是UTF8编码的数据,文件在Linux中查看是没有问题的,在Windows上用Excel打开却有乱码。在查阅资料后发现,windows系统中文本文档的编码格式用BOM来指定,在文件的开头要写入字符