您尝试打开的文件的格式与 Asp.Net 中文件扩展名指定的格式不同

2023-12-25

您尝试打开的文件的格式与文件扩展名指定的格式不同,尝试在 Excel 中打开文件时出现 C# 错误。

这是我的代码

public ActionResult Export(string filterBy)
{
    MemoryStream output = new MemoryStream();
    StreamWriter writer = new StreamWriter(output, Encoding.UTF8);

    var data = City.GetAll().Select(o => new
    {
        CountryName = o.CountryName,
        StateName = o.StateName,
        o.City.Name,
        Title = o.City.STDCode
    }).ToList();
    var grid = new GridView { DataSource = data };
    grid.DataBind();
    var htw = new HtmlTextWriter(writer);

    grid.RenderControl(htw);

    writer.Flush();
    output.Position = 0;

    return File(output, "application/vnd.ms-excel", "test.xls");

}

当我尝试打开 Excel 时出现此错误

您尝试打开的文件的格式与 由文件扩展名指定

单击“是”后,文件可以正确打开。但我不希望出现此消息。


我用过CloseXML http://closedxml.codeplex.com/来解决问题。

public static void ExportToExcel(IEnumerable<dynamic> data, string sheetName)
{
    XLWorkbook wb = new XLWorkbook();
    var ws = wb.Worksheets.Add(sheetName);
    ws.Cell(2, 1).InsertTable(data);
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    HttpContext.Current.Response.AddHeader("content-disposition", String.Format(@"attachment;filename={0}.xlsx",sheetName.Replace(" ","_")));

    using (MemoryStream memoryStream = new MemoryStream())
    {
        wb.SaveAs(memoryStream);
        memoryStream.WriteTo(HttpContext.Current.Response.OutputStream);
        memoryStream.Close();
    }

    HttpContext.Current.Response.End();
}

使用在我的项目中安装 ClosedXMLNuget 包管理器 https://www.nuget.org/packages/ClosedXML/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您尝试打开的文件的格式与 Asp.Net 中文件扩展名指定的格式不同 的相关文章

  • 盒式捆绑包与 MVC4 捆绑包

    我目前正在开发一个原型 ASP NET MVC 3 解决方案 该解决方案将用作多个项目重写的基础 来自 Web 表单 我的目标之一是跨应用程序实现一些脚本管理 而不是我们目前没有的目标 MVC 3有一个缺陷恕我直言 如果您需要在部分视图或模
  • 以独立于区域设置的方式读取 Excel 文件

    我使用以下代码从各种 Excel 文件读取数据 IMEX 1 to force strings on mixed data HDR NO to process all the available data Locale 1033 is en
  • ServerManager 构造函数在测试环境中崩溃

    我正在 MVC 4 中构建一个控制应用程序 遇到了一个非常烦人的问题 当我在本地调试项目时 它工作正常 但是 当我将项目部署到测试服务器 Windows Server 2008 R2 时 出现以下换行符 ServerManager mana
  • 在 ASP.NET MVC 中设置默认 JSON 序列化器

    我正在开发一个已部分转换为 MVC 的现有应用程序 每当控制器响应 JSON ActionResult 时 枚举都会以数字形式发送 而不是字符串名称 听起来默认的序列化程序应该是 JSON Net 它应该将枚举作为其名称而不是整数表示形式发
  • openpyxl 2.4.2:保存后公式生成的单元格值为空

    我使用 openpyxl 打开文件 编辑一些单元格并保存更改 这是一个例子 import openpyxl book openpyxl load workbook sheet path sheet book active for row i
  • 具有日期和名称标准的 SUMIFS...仅限月份和年份

    我正在尝试获取 SUMIFS 公式来检查日期列 并仅对与标准日期的匹配年份和月份相对应的值求和 我还希望此 SUMIFS 包含名称标准和日期 IE 单元格 A1 SUMIFS Sheet1 O O Sheet1 D D Sheet2 DAT
  • 从新的 xlsx 文件中删除宏

    功能部分 下面的代码将 xlsm 文件中的 2 个选项卡保存到新的 xlsx 文件中 文件保持打开状态以进行编辑 错误 xlsm 选项卡在工作表代码中有触发器 该触发器无效 一旦在 xlsx 工作表中输入任何内容 就会导致错误 所需输出 编
  • asp.net mvc 4:向 Scripts.Render 路径添加参数

    我想做以下事情 Scripts Render bundles jquery version 1 版本值必须是动态的并且应该与 cookie 中定义的值匹配 如何将此参数添加到 Scripts Render 我用 jQuery 尝试过类似的方
  • 如何在 EditorTemplate 中获取完全限定的成员名称?

    我有一个 ASP NET MVC 4 站点 我将嵌套属性传递给 EditorTemplate 并使用构建字段名称ViewData ModelMetadata PropertyName但是 这获取子属性的属性名称 而不是我正在编辑的属性的完整
  • 无法将 NULL 值插入列“RoleId”(mvc4 简单成员身份)

    我注意到其他人也遇到了同样的问题 例如无法将 NULL 值插入列 UserId https stackoverflow com questions 15346608 cannot insert the value null into col
  • Excel 2007 问题:预编程按钮突然不起作用[重复]

    这个问题在这里已经有答案了 今天 出乎意料的是 我工作的公司使用的表格的按钮突然出现了问题 奇怪的是 它只影响我确信是 ActiveX 命令按钮的部分 而不会导致其他形状或下拉菜单出现问题 问题 按钮没有反应 当您单击时 他们不会访问代码
  • 如何在 apache poi 中找到包含图片的单元格

    我尝试在 xls 文档中循环图像 我写下一个代码 HSSFPatriarch patriarch sheet getDrawingPatriarch if patriarch null Loop through the objects fo
  • 通过 VSTO 更改 Outlook AppointmentItem 的组织者

    我正在尝试通过我开发的插件从 Outlook 中的数据库创建一组 AppointmentItems 我希望能够在另一个交换帐户的日历上创建约会项目 我有它的凭据 AppointmentItem 的 Organizer 属性是只读的 没有帮助
  • 保护 Excel VBA 代码的最佳方法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经整理了一个简单的 Excel 数据库 该数据库执行一些宏函数 并且我需要将此数据库分发给几个人 但他们无法看到宏函数实际上是如何
  • 在 Excel 中打印 MATLAB 图窗并调整其大小

    我在 MATLAB 中有两个带有手柄的图形hFig1 and hFig2 我想将它们打印到 Excel 中的特定单元格 单元格 E3 和 I3 并将它们重新调整为 2 英寸 x 3 英寸 我尝试过使用 AddPictures对象处理程序和使
  • 将 .XLS 转换为制表符分隔的 .TXT

    我可以使用 C 将 Excel XLS 文件转换为 txt tsv 制表符分隔值 文件吗 使用 OleDb 可能很棘手 并且可能会导致问题 具体取决于创建电子表格的 Excel 版本 例如 上面的示例适用于 xls 但不适用于 xlsx 您
  • Excel countif 单元格中的日期大于或等于另一个单元格中的日期

    这已经让我难受有一段时间了 我只需要计算一个单元格中的日期是否大于或等于另一个单元格中的日期 减去 x 天 例如 A1 2014 年 2 月 20 日 B1 2014年1月20日 COUNTIF B1 gt A1 30 30 就是负 30
  • VBScript for Excel:如何选择源数据 (.SetSourceData)?

    我已经在谷歌和这里搜索了这个问题的答案 但没有成功 如果之前有人问过 那么我道歉 我正在尝试使用 VBScript 自动执行一些管理任务 此特定脚本的目的是从文本文件 包含文本和数字列 中获取一些使用情况统计信息 并根据数据制作折线图 创建
  • Excel VBA 将范围值复制到数组,

    我有以下代码摘录 我试图将一系列值复制到声明的数组上 但它一直给我 无法分配给数组 错误 Dim permittedCurve 0 To 7000 As Variant permittedCurve activeWorkbook Works
  • 如何循环浏览文件夹内所有工作簿中的所有工作表

    我使用宏对计算机上给定文件夹中每个工作簿的每张工作表进行更改 事件顺序 打开用户选择的文件夹中的每个 Excel 文件 在工作簿中的每个工作表上执行任务 保存文件 关闭工作簿 宏不起作用 问题似乎是由Selection AutoFilter

随机推荐