2010-11-04 103 views
2

我想知道是否有一種方法可以通過編程方式檢查並查看Excel工作簿中是否存在工作表?VB.NET - 以編程方式檢查Excel中是否存在工作表

基本上我正在做的是檢查是否存在一個Excel文檔,打開它並檢查指定的表是否存在。我目前不知道如何檢查並查看工作表是否存在。任何幫助都是極好的!謝謝。

UPDATE

他們給了我一些很好的代碼,使這項工作。我現在缺少的是正確的進口。

我已經搜查,發現該進口:

Imports Tools = Microsoft.Office.Tools.Excel 

但無法識別某些原因。我必須配置VS以某種方式使其工作?或者我只是使用錯誤的導入?

+1

您可能需要的工具DLL的引用添加到您的VS項目,你可以做到這一點之前。 – 2010-11-04 15:10:20

回答

4

你可以得到的工作表收集和重複檢查的名字,這是C#

foreach (Sheet xlsSheet in xlsxWorkbooks) 
{ 
    if (xlsSheet.Name.equals("NameYouAreLookingFor")) // Maybe add ToLower() incase of case issues 
    { 
     //Return First Cell Value 
    } 
} 
+0

有什麼我必須導入這個工作? Imports Tools = Microsoft.Office.Tools.Excel ?? – Johnrad 2010-11-04 14:58:42

+1

我參考互操作程序集,我相信它是Microsoft.Office.Interop.Excel或其他東西關閉,對不起,我沒有意識到你沒有使用互操作 – kd7 2010-11-04 15:47:08

+0

這非常好......非常感謝你!我的問題已解決。 – Johnrad 2010-11-04 16:24:06

1

再我的例子是在C#中,但這應該得到你想要的東西。


bool sheetExist = false; 
OleDbConnection objConn = new OleDbConnection(connString); 
objConn.Open(); 
DataTable dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); 
if (dt == null) 
    if (dt.Rows.Count > 0) 
    { 
     DataRow[] rows = dt.Select("TABLE_NAME = 'Sheet1$'") 
     if (rows != null) 
      sheetExist = rows.count > 0 
    } 
+0

我現在瞭解代碼但我正在嘗試爲VB.NET找到正確的導入 – Johnrad 2010-11-04 15:11:27

1
var containsSheet = 
    (workBookIn.Sheets.Cast<object>() 
     .Select(sheetValue => sheetValue as Worksheet)) 
     .Any(workbookSheet => workbookSheet != null && workbookSheet.Name == sheetName);