我正在使用OleDbConnection连接到C#程序的电子表格。连接字符串中的一个参数是Excel版本。
“Provider = Microsoft.Jet.OLEDB.4.0;数据源= C:\ Book1.xls;扩展属性=” Excel 8.0 ; HDR = YES“ < / p>
鉴于Excel文件的路径,我如何找出它使用的Excel格式版本?
提前致谢,
吨。
答案 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);