【问题标题】:Backward compatibility using excel interop in C#在 C# 中使用 excel 互操作的向后兼容性
【发布时间】:2012-12-10 15:20:35
【问题描述】:

我正在使用 excel 互操作来打开一个 excel 文件,在其他位置编辑并以其他名称保存它。为此我使用过:

workbook.saveAs(newFileName)

但它在应用程序中提示兼容性,就像它在 Office 2007 中使用saving .xls 文件时如何提示一样。我必须在前端应用程序中单击继续才能继续。怎么解决?

提前致谢, 萨拉特

【问题讨论】:

  • 您是否使用 .xls 扩展名保存文件?如果是这样,则该消息是预期的
  • @PanagiotisKanavos:是的,我必须这样做。我怎样才能避免这种情况?

标签: c# excel interop backwards-compatibility


【解决方案1】:

有一个Application.DisplayAlerts 属性,您可以在SaveAs 操作期间将其设置为False(然后设置回True)。

详情如下:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel._application.displayalerts(v=office.11).aspx

【讨论】:

  • Excel 无法打开文件“myfile.xlsx”,因为文件格式或文件扩展名无效。验证文件没有损坏并且文件扩展名与文件格式匹配。当我尝试在应用程序中打开 excel 时遇到上述异常
  • 您正尝试在 Excel 2003 或更早版本中打开 Excel 2007+ 文件。这是一种较新的基于 XML 的格式,您需要更新已安装的 Excel 版本和/或您正在编码的主要互操作程序集,以便管理这些文件。
【解决方案2】:

...我不确定我是否 100% 了解您遇到的情况,但如果出现通知框,请尝试将此行放在 Save 命令之前:

ExcelApp.DisplayAlerts = False

这应该禁止弹出警报....

【讨论】:

  • Excel 无法打开文件 myfile.xlsx,因为文件格式或文件扩展名无效。验证文件没有损坏,并且文件扩展名与文件格式匹配。
  • 在应用程序中重新打开时引发上述异常
  • 鉴于您在最初的问题中写的内容和这个,它们是两个完全不同的问题 - 如果您需要有关此方面的帮助,您必须在您的问题中添加更多代码,这样我才能明白为什么是这个错误被抛出...
  • 我正在打开一个可能是 xls 或 xlsx 的 excel 文件。我必须对其进行编辑并将其保存在另一个文件中。所以,我正在使用 saveAs(newFileName)。但它会弹出一个对话框进行兼容性检查。当我使用 app.displayAlerts=False 时,弹出窗口被禁用,但文件已损坏并在我尝试在应用程序中打开时引发以下异常
  • 似乎您应该做的就是使用正确的扩展名保存文件,然后 - 只要您不尝试将 Excel 2007+ 功能保存到 2007 之前的工作簿中,例如
猜你喜欢
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-12
  • 1970-01-01
相关资源
最近更新 更多