2017-05-30 5 views
-1

J'ai le code suivant qui basé sur la valeur trouvée dans un excel je dois mettre à jour les autres valeurs de cellules dans cette rangée. Mais il ne met pas les valeurs à jour dans la feuille Excel. MasterTable est de DataTable qui a les mêmes valeurs de colonne que l'excel j'ai besoin de mettre à jour ces valeurs à l'Excel. aidez-moi s'il vous plaît à trouver le problème.Excel n'est pas mis à jour avec interop en 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

ru essayant d'exporter les valeurs de datatable exceller –

+0

pas tout à fait il y a des valeurs qui sauver j'ai besoin de ce datatable et en fonction de ces valeurs, j'ai besoin d'appliquer le formatage à certaines des cellules, donc j'ai besoin d'utiliser Interop. – ansar

+0

Sauvegardez-vous vos modifications? Je vois que vous mettez à jour les valeurs mais ne sauvegardez pas le fichier. – Flater

Répondre

0

Comme il semble étrange, mais il fonctionne avec la fonction saveAs pour le livre de travail pas avec la sauvegarde.

J'ai changé le code au

suivant
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); 

et il travaille