l--*_*''' 7 .net c# excel excel-2007 office-interop
在.NET 3.5中使用C#与Visual Studio 2008,我试图在打开的工作簿中设置焦点(或激活)特定的工作表:
以下是一些属性:
public Excel.Application xlApp {get;set;}
public Excel.Workbook xlWorkBook { get; set; }
public Excel.Worksheet xlWorkSheet { get; set; }
public Excel.Range range { get; set; }
Run Code Online (Sandbox Code Playgroud)
以下是我尝试选择特定工作表的方法:
(xlWorkSheet)Application.ActiveWorkbook.Sheets[FormControls.WorksheetFocus]).Select(Type.Missing);
Run Code Online (Sandbox Code Playgroud)
我也尝试过这种方式:
((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[1]).Select();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何使用C#在工作簿中选择特定工作表?
解释定义的位置:
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; }
Run Code Online (Sandbox Code Playgroud)
并且所有内容都在同一个类和命名空间中
这是如何初始化:
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);
Run Code Online (Sandbox Code Playgroud)
M_M*_*abi 17
您可以使用以下代码:
Worksheet sheet = (Worksheet)xlApp.Worksheets[1];
sheet.Select(Type.Missing);
Run Code Online (Sandbox Code Playgroud)
要么
sheet.Activate();
Run Code Online (Sandbox Code Playgroud)
我使用过这段代码,对我来说效果很好.
这是我所做的,并且有效!
Excel.Worksheet xlWorkSheetFocus = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheetFocus.Activate();
Run Code Online (Sandbox Code Playgroud)
您的属性是否已初始化?
如果是这样的话,你应该能够通过以下任何一种方式实现你想要的目标:
xlApp.ActiveWorkbook.Sheets[1].Activate();
xlWorkbook.Sheets[1].Activate();
xlSheet.Activate();
Run Code Online (Sandbox Code Playgroud)
如果不是,则应至少将xlApp属性初始化为Application您正在使用的对象,然后使用上面的代码.您可以使用下面的代码初始化前两个对象.
xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbooks xlWorkbooks = xlApp.Workbooks;
xlWorkbook = xlWorkbooks.Open(@"C:\filename.xlsx");
Run Code Online (Sandbox Code Playgroud)