C#使用DocumentFormat.OpenXml生成Excel打开报格式扩展名不匹配问题求助
问题根因
核心错误为文件扩展名拼写错误:你代码中将Excel的标准扩展名.xlsx误写为.xslx,字母s和l顺序颠倒,导致系统无法正确识别文件格式,触发「文件格式与扩展名不匹配」报错。
修复步骤
- 修正文件名的扩展名拼写,将原代码行:
string fileFullname = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Content\\MyDocument", "MyExcel.xslx");
修改为:
string fileFullname = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Content\\MyDocument", "MyExcel.xlsx");
- 补充优化建议(避免后续出现同类损坏问题):
- 工作表填充完成后,建议先调用
workbookpart.Workbook.Save()再执行spreadsheetDocument.Close(),确保所有内容完整写入文件 - 生成的Excel文件至少要包含1个有效工作表,不能存在空的Sheets集合
- 不要随意修改生成后的文件后缀,保持和
SpreadsheetDocumentType的类型匹配
验证效果
修改后重新生成文件,系统会自动识别文件类型为Microsoft Excel Worksheet,打开时不会再弹出报错提示。
内容的提问来源于stack exchange,提问作者The Inquisitive Coder
相关产品推荐
相关产品推荐

