问题在C#中写入Excel2007二进制文件

本文关键字:Excel2007 二进制文件 问题 | 更新日期: 2023-09-27 18:29:21

我目前看到将结果从网格视图导出到excel文件的问题。我们使用了.xls版本,当它打开时,我们看到一些用户等待1小时才能打开一个约80000行、约50MB的导出文件。在这1小时内,他们不能使用任何MS Office程序。请注意,此文件也是格式化的。

我读过的解决这个问题的一种方法是使用.xlsb格式。虽然我通过保存50MB文件进行了测试,并看到文件大小显著减小,但在将文件写入.xlsb文件后,我在打开该文件时遇到了问题。

我得到错误说"****Excel cannot open the file 'testme.xlsb' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.**"**

这是我使用的代码。你能帮忙吗?

try
        {
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".xlsb");
            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel.sheet.binary.macroEnabled.12"; 
            StringWriter sw = new StringWriter();
            HtmlTextWriter tw = new HtmlTextWriter(sw);
            ctrl.RenderControl(tw);
            HttpContext.Current.Response.Write(sw.ToString());
            HttpContext.Current.Response.End();
        }
        catch (Exception ex)
        {
            throw;
        }
    }

问题在C#中写入Excel2007二进制文件

将HTML转储到一个文件中并称之为Excel,只要它能工作,就可以工作——似乎已经达到了极限。

在实际的行上循环,并使用库编写一个合适的Excel文件,你就可以开始了。