Visual Studio Windows Forms C# Interop.Excel - Excel Class Object

I have created a C# Windows Form project in Visual Studio and I am trying to work with an Excel workbook via interop.excel. I have created a custom "excel class" and created an object of it in my Form1. What I am struggling with is whether it is possible to open an excel workbook via a button press, i.e. create the class object from a button press, and then be able to use that object in other button presses. Two versions of code are shown below. One works. One does not. The one that works just opens the Excel workbook when the program is launched. The other attempts to use a button press on the form to open the workbook after the program is launched. In the code that does not work, the object "does not exist in the current context". Any help on how to make the button press code work is most appreciated!

This code works:

namespace XLtest1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
ExcelClass ex  = new ExcelClass(@"C:\path\TestBook.xlsx", 1);

private void ReadCell_Click(object sender, EventArgs e)
{
    ex.ReadCell();
}

This code does not:

namespace XLtest1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public void OpenFile()
{
    ExcelClass ex  = new ExcelClass(@"C:\path\TestBook.xlsx", 1);
}

private void OpenWorkbook_Click(object sender, EventArgs e)
{
  OpenFile();
}

private void ReadCell_Click(object sender, EventArgs e)
{
    ex.ReadCell(); // "ex" does not exist in the current context 
}


#c-sharp #excel #visual-studio

1 Likes2.15 GEEK