我正在使用OleDbConnection连接到C#程序的电子表格 . 连接字符串中的一个参数是Excel版本 .
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=" Excel 8.0 ; HDR = YES“
给定Excel文件的路径,如何找出它使用的Excel格式版本?
提前致谢,
T.
下载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);
除了所说的内容之外,除了使用Excel自动化打开文件之外,您还可以尝试从代码中读取文件版本:
xls 个文件:这些文件保存为structured storage . 你可以使用这篇文章中的技巧:How To Determine Which Version of Excel Wrote a Workbook
xlsx 文件:您可以将它们作为zip文件打开 . 版本位于app.xml文件AppVersion字段中 .
2 回答
下载OLE File Property Reader . 使用regsvr32注册dsofile.dll并将其作为参考添加到您的应用程序中 . 以下代码将输出Excel文件的类型 . 它不适用于xlsx / docx,因为它们不是OLE compunds目标文件,但应该适用于所有旧的Office格式(2007/2003 / XP) .
除了所说的内容之外,除了使用Excel自动化打开文件之外,您还可以尝试从代码中读取文件版本:
xls 个文件:这些文件保存为structured storage . 你可以使用这篇文章中的技巧:How To Determine Which Version of Excel Wrote a Workbook
xlsx 文件:您可以将它们作为zip文件打开 . 版本位于app.xml文件AppVersion字段中 .