使用c#在excel中select工作表

在Visual Studio 2008中使用.NET 3.5中的C#,我想在打开的工作簿中设置焦点(或激活)特定的工作表:

以下是一些属性:

public Excel.Application xlApp {get;set;} public Excel.Workbook xlWorkBook { get; set; } public Excel.Worksheet xlWorkSheet { get; set; } public Excel.Range range { get; set; } 

这里是我如何select一个特定的工作表:

 (xlWorkSheet)Application.ActiveWorkbook.Sheets[FormControls.WorksheetFocus]).Select(Type.Missing); 

我也尝试过这种方式:

 ((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[1]).Select(); 

我究竟做错了什么? 如何使用C#在工作簿中select特定的工作表?


解释定义在哪里:

 namespace EmailSalesVolumeSolution { class WorkBook { public string MasterFileName { get; set; } public string[] DistinctEmails { get; set; } public Excel.Application xlApp {get;set;} public Excel.Workbook xlWorkBook { get; set; } public Excel.Worksheet xlWorkSheet { get; set; } public Excel.Range range { get; set; } 

和一切都在同一个类和名称空间

这里是如何启发:

 private void OpenWorkBook() { string str; int rCnt = 0; int cCnt = 0; xlApp = new Excel.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Open(MasterFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(FormControls.WorksheetEmails); 

您可以使用下面的代码:

 Worksheet sheet = (Worksheet)xlApp.Worksheets[1]; sheet.Select(Type.Missing); 

要么

 sheet.Activate(); 

我已经使用这个代码,它对我来说工作得很好。

你的属性是否初始化?

如果是这样的话 ,你可能应该能够实现你正在尝试的任何一种方式:

 xlApp.ActiveWorkbook.Sheets[1].Activate(); xlWorkbook.Sheets[1].Activate(); xlSheet.Activate(); 

如果它们不是 ,则应该至less将xlApp属性初始化为您正在使用的Application对象,然后使用上面的代码。 您可以使用下面的代码初始化前两个对象。

 xlApp = new Microsoft.Office.Interop.Excel.Application(); Workbooks xlWorkbooks = xlApp.Workbooks; xlWorkbook = xlWorkbooks.Open(@"C:\filename.xlsx"); 

这是我做的,它的工作原理!

 Excel.Worksheet xlWorkSheetFocus = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2); xlWorkSheetFocus.Activate(); 

你可以这样做:

 Excel.Application xlApp; Excel.Worksheet xlWorksheet; 
  1. xlWorksheet = xlApp.Worksheets.get_Item(1);

  2. xlWorksheet = xlApp.Worksheets[1];