我正在使用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字段中。