以编程方式查找Excel文件的Excel版本

时间:2010-01-15 11:06:45

标签: c# excel oledb

我正在使用OleDbConnection连接到C#程序的电子表格。连接字符串中的一个参数是Excel版本。

“Provider = Microsoft.Jet.OLEDB.4.0;数据源= C:\ Book1.xls;扩展属性=” Excel 8.0 ; HDR = YES“ < / p>

鉴于Excel文件的路径,我如何找出它使用的Excel格式版本?

提前致谢,

吨。

2 个答案:

答案 0 :(得分:3)

除了所说的内容之外,除了使用Excel自动化打开文件之外,您还可以尝试从代码中读取文件版本:

xls 文件:这些文件保存为structured storage。您可以使用此处文章中的技巧:How To Determine Which Version of Excel Wrote a Workbook

xlsx 文件:您可以将它们打开为zip文件。版本位于app.xml文件AppVersion字段中。

答案 1 :(得分:2)

下载OLE File Property Reader。使用regsvr32注册dsofile.dll并将其作为参考添加到您的应用程序中。以下代码将输出Excel文件的类型。它不适用于xlsx / docx,因为它们不是OLE compunds目标文件,但应该适用于所有旧的Office格式(2007/2003 / XP)。

var doc = new OleDocumentPropertiesClass();            
doc.Open(@"c:\spreadhseet.xls", false, dsoFileOpenOptions.dsoOptionDefault);
Console.WriteLine(doc.OleDocumentType);