2010-01-15 61 views
2

我正在使用OleDbConnection从C#程序连接到电子表格。连接字符串中的一个参数是Excel版本。以编程方式查找Excel文件的Excel版本

“提供者= Microsoft.Jet.OLEDB.4.0;数据源= C:\ Book1.xls的;扩展属性=” 的Excel 8.0; HDR = YES”

鉴于一个Excel的路径文件我怎么能找出Excel格式版本,它采用提前?

感谢,

T.

回答

2

下载OLE File Property Reader。具有reg注册dsofile.dll svr32并将其作为参考添加到您的应用程序中。以下代码将输出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); 
3

我除了说了些什么,并除了使用Excel自动打开,你可以尝试从您的代码读取文件版本的文件:

XLS文件:这些被保存为structured storage。您可以使用这篇文章中的技术:How To Determine Which Version of Excel Wrote a Workbook

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