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

时间:2015-01-28 08:03:57

标签: c# ms-office

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

  

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

如果转换是.xls格式,我可以打开带有警告信息的转换后的文件。

  

您尝试打开的文件abc.xls采用不同的格式   比文件扩展名指定的。验证文件不是   在打开文件之前损坏并来自受信任的来源。你呢   想立即打开文件?

我需要通过C#代码将文件转换为.xlsx格式,无论其扩展程度如何,并由Excel 2010打开。

2 个答案:

答案 0 :(得分:2)

不是文件类型的工作原理!

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

*.xls重命名为*.xlsx有效,因为两者都是可以通过MS Excel打开的Excel文件,但适用于所有其他类型(Excel可以处理的其他类型除外,例如{{1}你需要阅读文件和"手动"转换它们。

要使用C#编写*.csv,您可以使用例如EPPlusNuGet)。

答案 1 :(得分:0)

您需要一个可以为您转换文件的库。

我发现您需要从Office 2003打开文件,因此您需要使用 NPOI

之类的内容

不幸的是,即使 EPPLUS 是Office文件的绝佳库,它也只支持.xlsx.docx等OXML文档,而不支持.xls

NPOI 是一个免费的开源库,可以使用Office 2003-> 2010/3文件。

Here is the link