I'm working on a program that allows the user to pull up part numbers from a database. The part numbers are then to be pasted into an active Excel Sheet.
I'm trying to do this with Excel interop Excel 16.0. I can copy the data but am having issues getting it to paste into excel.
private void cmdCopyToExcel_Click(object sender, EventArgs e)
    {
        string wb = cmb_BookName.Text.ToString();
        string ws = cmb_SheetName.Text.ToString();
        if (chkContainer.Checked)
        {
            Excel.Application xlApp = new Excel.Application();
            Excel.Workbook xlWorkbook = xlApp.Workbooks[wb];                      
            Excel.Worksheet xlWorksheet = xlWorkbook.Sheets[ws];
            
            xlWorksheet.Cells[48, 4] = cboContainer.Text;              
        }
I'm able to get the open excel workbook and worksheet that I need, but when I try to paste it into excel all I get is a COM Exception. The exception occurs on line 10. I've tried using ("wb name") and ("ws name"), have also tried using index numbers [1] for workbook and [3] for worksheets but nothing works.
Can anyone see what I'm doing wrong or is there an easier way to copy from C# and paste into an excel cell?
Addition:I tried opening the workbook that I wanted to add test to, just to see if I could get it to work.
Here is the code:
private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            //create a instance for the Excel object  
            Excel.Application oExcel = new Excel.Application();
            //specify the file name where its actually exist  
            string filepath = @"K:\R&D Dept\Development Lab\R&D Test Request System (For testing and training)\Test Matrices\JRD Test Matrix for part numbers.xlsm";
            //pass that to workbook object  
            Excel.Workbook WB = oExcel.Workbooks.Open(filepath);
            // statement get the workbookname  
            string ExcelWorkbookname = WB.Name;
            // statement get the worksheet count  
            int worksheetcount = WB.Worksheets.Count;
            Excel.Worksheet wks = (Excel.Worksheet)WB.Worksheets[3];
            // statement get the firstworksheetname  
            string firstworksheetname = wks.Name;
            //statement get the first cell value  
            var firstcellvalue = ((Excel.Range)wks.Cells[48, 4]).Value;
        }
        catch (Exception ex)
        {
            string error = ex.Message;
        }
    }
}
}
This worked, so I guess my question becomes how to work with an Excel workbook and worksheet that are already open?
 
    