C# 将任何文件转换为.xlsx会导致打开时出错

C# 将任何文件转换为.xlsx会导致打开时出错,c#,ms-office,C#,Ms Office,我正在将任何文件保存为.xlsx格式。如果原始文件的扩展名不是.xlsx,则在尝试打开它时会引发异常。例外消息是:- Excel无法打开文件“abc.xlsx”,因为文件格式或 扩展名无效。验证文件是否已损坏 并且文件扩展名与文件的格式匹配 然而,如果转换为.xls格式,我可以打开带有警告消息的转换文件 您试图打开的文件abc.xls的格式不同 而不是由文件扩展名指定的。请确认该文件未被删除 已损坏,并且在打开文件之前来自受信任的源。你…吗 现在要打开文件吗 我需要用C代码将文件转换成.xlsx

我正在将任何文件保存为.xlsx格式。如果原始文件的扩展名不是.xlsx,则在尝试打开它时会引发异常。例外消息是:-

Excel无法打开文件“abc.xlsx”,因为文件格式或 扩展名无效。验证文件是否已损坏 并且文件扩展名与文件的格式匹配

然而,如果转换为.xls格式,我可以打开带有警告消息的转换文件

您试图打开的文件abc.xls的格式不同 而不是由文件扩展名指定的。请确认该文件未被删除 已损坏,并且在打开文件之前来自受信任的源。你…吗 现在要打开文件吗


我需要用C代码将文件转换成.xlsx格式,不管其扩展名如何,然后用Excel 2010打开它。

这不是文件类型的工作方式

您不能简单地重命名文件,然后将其转换为其他类型

*.xls
重命名为
*.xlsx
是可行的,因为这两个文件都是可以由MS Excel打开的Excel文件,但对于所有其他类型(Excel可以处理的其他类型除外,例如
*.csv
),您需要读取文件并“手动”转换它们


要使用C编写
*.xlsx
,您可以使用例如()。

您需要一个库来转换文件

我发现您需要打开Office 2003中的文件,因此需要使用类似于NPOI的东西

不幸的是,即使EPPLUS是一个很好的Office文件库,它也只支持像
.xlsx
.docx
这样的OXML文档,而不支持
.xls

NPOI是一个免费的开源库,用于处理Office 2003->2010/3文件


转换与重命名文件不同-我怀疑您正在重命名文件。假设我递给你一把铲子,但告诉你那是一个苹果。你还会吃吗?