it-roy-ru.com

используя c # для выбора листа в Excel

Используя C # в .NET 3.5 с 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);
6

Вот что я сделал, и это работает!

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

Вы можете использовать следующий код:

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

или же

sheet.Activate();

Я использовал этот код, и он отлично работает для меня.

17
M_Mogharrabi

Ваши свойства инициализированы?

Если они есть , вы, вероятно, сможете достичь того, что вы пытаетесь, с помощью одного из этих:

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");
6
Nikola Malešević

Вы можете сделать это обоими способами:

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

  2. xlWorksheet = xlApp.Worksheets[1];

0
André Bravo Ferreira

xlWorkSheet = (рабочая таблица) xlWorkBook.Worksheets.get_Item (2);

OR

xlWorkSheet = (рабочая таблица) xlWorkBook.Sheets ["SheetName"];

0
Himanshu Rajoriya