Excel不会与C#中的互操作更新

问题描述:

我有以下代码,基于在Excel中找到的值我必须更新该行中的其他单元格值。但它不会将值更新回Excel表单。 MasterTable是DataTable,它具有与我需要将这些值更新到Excel的Excel相同的列值。请帮我找到问题。Excel不会与C#中的互操作更新

for (int row = 0; row < masterTable.Rows.Count; row++) 
     { 
      // Get the CIS ID 
      string CISid = Convert.ToString(masterTable.Rows[row][RemoveSpecialCharachtersAndSpace("SOW/CIS No")]); 

      Excel.Range range = xlWorksheet.UsedRange.Rows.Find(CISid, System.Type.Missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, System.Type.Missing, System.Type.Missing, System.Type.Missing); 
      //FindRangeCISByID(CISid); 
      if (range != null && range.Rows.Count > 0 && (!string.IsNullOrEmpty(Convert.ToString(range.Rows.Cells[1, 1].Value2)))) 
      { 
       for (int cell1 = 1; cell1 < 5; cell1++) 
       { 
        //Master Excel Copy 
        string masterColumnCopy = Convert.ToString(range.Rows.Cells[1, cell1].Value2); 
        // Local Data table copy of column value 
        string datatableColumnValue = GetColumnValueFromDataTable(masterTable, cell1); 
        xlWorksheet.UsedRange.Find(CISid).Cells[1, cell1].Value = datatableColumnValue ; 
       } 
      } 
     } 



xlWorkbook.Save(); 
       xlWorkbook.Close(); 
       xlApp.Quit();` 
+0

茹试图将值从数据表中导出到Excel –

+0

不完全也有一些价值,我从这个数据表需要并基于这些值,我需要将格式也应用到一些单元格,所以我需要使用Interop。 – ansar

+0

是否保存更改?我看到你更新了值但不保存文件。 – Flater

奇怪它的声音,但它正在与功能的saveAs工作簿不保存。

我已经改变了保存代码以下

xlWorkbook.SaveAs(@"D:\ExcelData_new.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, 
     false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, 
     Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

,它正在