11

在 .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; }        

这是我尝试选择特定工作表的方式:

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

我也尝试过这种方式:

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

我究竟做错了什么?如何使用 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; }    

一切都在同一个类和命名空间中

这是它的初始化方式:

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);
4

5 回答 5

23

您可以使用以下代码:

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

或者

sheet.Activate();

我已经使用了这段代码,它对我来说很好。

于 2013-02-25T06:39:38.123 回答
7

你的属性初始化了吗?

如果是,您可能应该能够通过以下任何一种方式实现您想要实现的目标:

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

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

xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbooks xlWorkbooks = xlApp.Workbooks;
xlWorkbook = xlWorkbooks.Open(@"C:\filename.xlsx");
于 2012-08-24T20:33:19.943 回答
7

这就是我所做的并且它有效!

Excel.Worksheet xlWorkSheetFocus = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(2);
xlWorkSheetFocus.Activate();
于 2012-08-24T20:55:19.903 回答
2
xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(2);

或者

xlWorkSheet =(Worksheet)xlWorkBook.Sheets["SheetName"];
于 2018-01-17T13:38:24.663 回答
0

您可以通过以下两种方式进行:

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

  2. xlWorksheet = xlApp.Worksheets[1];

于 2014-10-27T10:40:00.003 回答