2017-05-30 56 views
-1

我有以下代碼,基於在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

回答

0

奇怪它的聲音,但它正在與功能的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); 

,它正在