我正在使用OleDbConnection从C#程序连接到电子表格。连接字符串中的一个参数是Excel版本。以编程方式查找Excel文件的Excel版本
“提供者= Microsoft.Jet.OLEDB.4.0;数据源= C:\ Book1.xls的;扩展属性=” 的Excel 8.0; HDR = YES”
鉴于一个Excel的路径文件我怎么能找出Excel格式版本,它采用提前?
感谢,
T.
我正在使用OleDbConnection从C#程序连接到电子表格。连接字符串中的一个参数是Excel版本。以编程方式查找Excel文件的Excel版本
“提供者= Microsoft.Jet.OLEDB.4.0;数据源= C:\ Book1.xls的;扩展属性=” 的Excel 8.0; HDR = YES”
鉴于一个Excel的路径文件我怎么能找出Excel格式版本,它采用提前?
感谢,
T.
下载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);
我除了说了些什么,并除了使用Excel自动打开,你可以尝试从您的代码读取文件版本的文件:
XLS文件:这些被保存为structured storage。您可以使用这篇文章中的技术:How To Determine Which Version of Excel Wrote a Workbook
xlsx文件:您可以将它们作为zip文件打开。版本位于app.xml文件的AppVersion字段中。