2010-01-15 102 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字段中。