2016-02-09 50 views
0

我怎樣才能獲得的Excel files.I總數使用下面的代碼如何獲得工作簿的確切數量(Excel文件)

try 
    { 
     var excelApp = new Excel.Application(); 
     excelApp.Visible = true; 
     Excel.Workbooks book = excelApp.Workbooks; 
     Excel.Workbook sheets = book.Open(schemes.ProcessExefilePath); 
    } 
catch (Exception ex) 
     { 
     } 

,然後正在打開我的文件時,我得到的文件總數。它總是返回我零計數

Microsoft.Office.Interop.Excel.Application excelApp = null; 

    try 
    { 
     excelApp = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 
     } 
    catch 
     { 

     } 
    if (excelApp == null) 
     { 
     excelApp = new Microsoft.Office.Interop.Excel.Application(); 
     } 

     for (int i = 0; i < excelApp.Windows.Count; i++) 
      { 
         //my work....... 
      } 

什麼是錯的這個代碼..或者是還有什麼別的東西我必須做的..

enter image description here

+0

你有沒有調試過你的'for'循環? 「excelApp.Windows.Count」屬性的價值是什麼?它經歷了多少次迭代? – Alex

+0

它有零迭代。 – navi

+0

和excelApp.Windows.Count的值是? – Alex

回答

2

在你的代碼不開放在宣佈excelApp任何文件,所以Windows.count給你0

嘗試值:

Microsoft.Office.Interop.Excel.Application excelApp = null; 

try 
{ 
    excelApp = (Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 
    } 
catch 
    { 

    } 
if (excelApp == null) 
    { 
    excelApp = new Microsoft.Office.Interop.Excel.Application(); 
    } 
    ' **HERE** - Open workbooks with excelApp.Workbooks.Open(...) 
    for (int i = 0; i < excelApp.Windows.Count; i++) 
     { 
        //my work....... 
     } 
+0

使用上面的文件我用每次打開兩個文件。並在下一步我需要計算打開多少個文件,第一個代碼工作,但第二個不是。您的解決方案似乎與我自己的代碼相同 – navi

+0

當您這樣做時:excelapp = new Microsoft ....您聲明另一個Excel實例,那是不知道你對另一個實例做了什麼。 –

+0

可能需要將excelApp設置爲全局變量,才能在其他競賽中使用 –

相關問題