Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取工作簿(excel文件)的确切数量_C#_Ms Office - Fatal编程技术网

C# 如何获取工作簿(excel文件)的确切数量

C# 如何获取工作簿(excel文件)的确切数量,c#,ms-office,C#,Ms Office,如何获取excel文件的总数。我正在使用以下代码打开我的文件 try { var excelApp = new Excel.Application(); excelApp.Visible = true; Excel.Workbooks book = excelApp.Workbooks; Excel.Workbook sheets = book.Open(schemes.ProcessExefilePath); } catch (E

如何获取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....... 
           }
Microsoft.Office.Interop.Excel.Application excelApp=null;
尝试
{
excelApp=(Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshall.GetActiveObject(“Excel.Application”);
}
抓住
{
}
如果(excelApp==null)
{
excelApp=新的Microsoft.Office.Interop.Excel.Application();
}
对于(int i=0;i
此代码中有什么错误。。或者我还有别的事要做


在您的代码中,您不会在声明的
excelApp
中打开任何文件,因此
Windows.count
的值为0

尝试:

Microsoft.Office.Interop.Excel.Application excelApp=null;
尝试
{
excelApp=(Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshall.GetActiveObject(“Excel.Application”);
}
抓住
{
}
如果(excelApp==null)
{
excelApp=新的Microsoft.Office.Interop.Excel.Application();
}
'**此处**-使用excelApp.workbooks.Open打开工作簿(…)
对于(int i=0;i
在您的代码中,您不会在声明的
excelApp
中打开任何文件,因此
Windows.count
的值为0

尝试:

Microsoft.Office.Interop.Excel.Application excelApp=null;
尝试
{
excelApp=(Microsoft.Office.Interop.Excel.Application)System.Runtime.InteropServices.Marshall.GetActiveObject(“Excel.Application”);
}
抓住
{
}
如果(excelApp==null)
{
excelApp=新的Microsoft.Office.Interop.Excel.Application();
}
'**此处**-使用excelApp.workbooks.Open打开工作簿(…)
对于(int i=0;i
您是否调试了
循环的
excelApp.Windows.Count
属性的值是多少?它经过了多少次迭代?它有零次迭代。excelApp.Windows.Count的值是???它是零,我打开了两个文件。你调试了
循环了吗?
excelApp.Windows.Count
属性的值是多少?它经过了多少次迭代?它有零次迭代。excelApp.Windows.Count的值是???它是零,我打开了两个文件,在上面的文件中,我每次打开两个文件。在下一步中,我需要计算打开的文件数,第一个代码正常工作,但第二个代码无效。当您这样做时,您的解决方案似乎与我自己的代码相同:excelapp=new Microsoft。。。。您声明了另一个Excel实例,该实例不知道您对另一个实例所做的操作。可能需要将excelApp设置为全局变量,以便在其他竞赛中使用。如果我重新启动计算机,它将为我提供正确的计数。但下次它不起作用时请注意,当您调用新的Microsoft.Office.Interop.Excel.Application()
时,应用程序主窗口设置为不可见,因此如果您的代码在正确关闭
excelApp
之前崩溃,则后台Excel进程仍将运行;这种情况会导致奇怪的行为,使用上面的文件,我每次打开两个文件。在下一步中,我需要计算打开的文件数,第一个代码正常工作,但第二个代码无效。当您这样做时,您的解决方案似乎与我自己的代码相同:excelapp=new Microsoft。。。。您声明了另一个Excel实例,该实例不知道您对另一个实例所做的操作。可能需要将excelApp设置为全局变量,以便在其他竞赛中使用。如果我重新启动计算机,它将为我提供正确的计数。但下次它不起作用时请注意,当您调用新的Microsoft.Office.Interop.Excel.Application()
时,应用程序主窗口设置为不可见,因此如果您的代码在正确关闭
excelApp
之前崩溃,则后台Excel进程仍将运行;这种情况可能导致奇怪的行为
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....... 
       }