C#interop.excel get_范围调用失败,出现空引用异常

C#interop.excel get_范围调用失败,出现空引用异常,c#,excel,C#,Excel,我正在尝试访问Windows窗体应用程序中工作表中的值。我首先通过按钮(btnBrowse)打开电子表格文件,然后一旦打开,用户在文本框(txtBatchIDCell)中输入一个单元格值,该值的内容显示在另一个文本框(txtBatchID)中 但是,虽然我可以在第一次打开电子表格的函数中查询单元格(使用getRange),但我无法在txtBatchIDCell_textchanged子例程中查询它们,但我得到一个空引用错误(即使我将单元格值硬编码到get_Range调用中: public par

我正在尝试访问Windows窗体应用程序中工作表中的值。我首先通过按钮(btnBrowse)打开电子表格文件,然后一旦打开,用户在文本框(txtBatchIDCell)中输入一个单元格值,该值的内容显示在另一个文本框(txtBatchID)中

但是,虽然我可以在第一次打开电子表格的函数中查询单元格(使用getRange),但我无法在txtBatchIDCell_textchanged子例程中查询它们,但我得到一个空引用错误(即使我将单元格值硬编码到get_Range调用中:

public partial class ImportXLS : Form
{
  public Excel.Application xlApp = new Excel.Application();
  public Excel.Workbook xlWorkBook;
  public Excel.Worksheet xlWorkSheet;
  public object none = Type.Missing;

    public ImportXLS()
    {
        InitializeComponent();
    }

    private void btnBrowse_Click(object sender, EventArgs e)
    {
        openFileDialog1.ShowDialog();
        txtSpreadsheet.Text = openFileDialog1.FileName;
                xlWorkBook = xlApp.Workbooks.Open(
                    txtSpreadsheet.Text, //FileName
                    0, //UpdateLinks
                    true, //ReadOnly
                    5, //Format
                    none, //Password
                    none, //WriteResPassword
                    true,//IgnoreReadOnlyRecommended
                    Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, //Origin
                    "\t", //Delimiter
                    false, //Editable
                    false, //Notify
                    0, //Converter
                    false, //AddToMRU
                    1, //Local
                    0 //CorruptLoad
                    );
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); //get worksheet
                MessageBox.Show("Sheet open!");
    }
    private void txtBatchIDCell_TextChanged(object sender, EventArgs e)
    {
            txtBatchID.Text = xlWorkSheet.get_Range(txtBatchIDCell.Text, txtBatchIDCell.Text).Value2.ToString();
    }
}
我已经公开了工作簿,但它仍然给我相同的NullReference异常

更新:


get_range调用现在在btnBrowse中也不起作用。我做错了什么?

已解决:结果表明它实际上工作正常,只是所讨论的单元格是空的,因此它为什么会抛出异常,我不希望它会返回异常。

因此,这个故事的寓意是……如果b从函数中获取它们,并有文件证明它们不能为null。请注意,您在
btnBrowse\u Click
中也这样做过几次。@DStanley,是否有文件证明get\u Range()或工作表不能为null?我所能找到的get\u Range文档只有一个非常稀疏的页面:。