Edite un file de Excel existente en c #. COMException

Por lo tanto, he creado un file Excel en mi misma aplicación wpf en la window principal. Ahora, quiero editar ese file para poder agregar otra hoja de trabajo y colocar algunos datos en ella.

El file se crea bien y pone toda la información necesaria en él, pero cuando trato de llamarlo de nuevo aparece una COMExcpetion que dice que no puede encontrar el file, ¡¡¡pero el file está allí !!

¡Creo que no es nada importante, pero muchas gracias por cualquier ayuda!

Aquí está el código:

private void Nextday_Click(object sender, RoutedEventArgs e) { Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = true; Workbook wb = xlApp.Workbooks.Open(@"C:Users\Public\Documents\Report.xls"); Worksheet ws2 = (Worksheet)wb.Worksheets[2]; ws2.Name = "Part Function"; object misValue = System.Reflection.Missing.Value; int i = 1; ws2.Cells[i, 1] = "Part Function Auto"; i++; ws2.Cells[i, 1] = "Problem Reported in TestID#:"; i++; ws2.Cells[i, 1] = "Problem is:"; i++; ws2.Cells[2, 2] = testBox.Text; wb.Save(); wb.Close(); } 

Y así es como creé el file Excel en primer lugar.

  private void submit_Click(object sender, RoutedEventArgs e) { Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); xlApp.Visible = false; Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet ws = (Worksheet)wb.Worksheets[1]; ws.Name = "Personal Info"; wb.Sheets.Add(After: wb.Sheets[wb.Sheets.Count]); object misValue = System.Reflection.Missing.Value; TextRange programTxt = new TextRange(program.Document.ContentStart, program.Document.ContentEnd); TextRange dateTxt = new TextRange(date.Document.ContentStart, date.Document.ContentEnd); TextRange vinTxt = new TextRange(vin.Document.ContentStart, vin.Document.ContentEnd); TextRange dandrTxt = new TextRange(dandr.Document.ContentStart, dandr.Document.ContentEnd); TextRange cdsidTxt = new TextRange(cdsid.Document.ContentStart, cdsid.Document.ContentEnd); TextRange milestoneTxt = new TextRange(milestone.Document.ContentStart, milestone.Document.ContentEnd); TextRange alertTxt = new TextRange(alert.Document.ContentStart, alert.Document.ContentEnd); int i = 1; ws.Cells[i, 1] = "Program:"; i++; ws.Cells[i, 1] = "Date:"; i++; ws.Cells[i, 1] = "VIN:"; i++; ws.Cells[i, 1] = "D & R:"; i++; ws.Cells[i, 1] = "CDS ID:"; i++; ws.Cells[i, 1] = "Milestone:"; i++; ws.Cells[i, 1] = "Alert:"; i++; ws.Cells[i, 1] = "Region:"; i++; int j = 1; ws.Cells[j, 2] = programTxt.Text; j++; ws.Cells[j, 2] = dateTxt.Text; j++; ws.Cells[j, 2] = vinTxt.Text; j++; ws.Cells[j, 2] = dandrTxt.Text; j++; ws.Cells[j, 2] = cdsidTxt.Text; j++; ws.Cells[j, 2] = milestoneTxt.Text; j++; ws.Cells[j, 2] = alertTxt.Text; j++; if (EU.IsChecked == true) { ws.Cells[j, 2] = EU.Content; j++; } if (Canada.IsChecked == true) { ws.Cells[j, 2] = Canada.Content; j++; } if (USA.IsChecked == true) { ws.Cells[j, 2] = USA.Content; j++; } wb.SaveAs(@"C:Users\Public\Documents\Report.xls"); wb.Close(); } 

EDITAR, FIJO

Entonces, ¡lo arreglamos! Realmente no sé por qué, pero aparentemente la ruta del file fue el problema. Lo cambié a WB = _Excel.Workbooks.Open("C:\\Users\\Public\\Documents\\Report.xls"); y ahora funciona!

Probablemente aún tenga el file bloqueado. Debe cerrar su libro de trabajo y aplicación.

 wb.Close(); ws.Close(); xlapp.Quit();