2017-09-06 15 views
-3

C'est un doublon pas lu question complèteImpossible de charger le fichier ou l'assembly 'Microsoft.Office.Interop.Excel, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c'

Je application console.

ici, je veux exporter la valeur du jeu de données vers Excel

pour que je vais utiliser ce j'ai utilisé microsoft.office.interop.excel.dll

et en utilisant cet espace de noms et

en utilisant Excel = Microsoft.Office.Interop.Excel;

ceci est mon code d'exportation Excel

private static bool ExportDataTableToExcel(DataTable dt, string filepath) 
    { 

     Excel.Application oXL; 
     Excel.Workbook oWB; 
     Excel.Worksheet oSheet; 
     Excel.Range oRange; 

     try 
     {  
      oXL = new Excel.Application(); 
      oXL.Visible = true; 
      oXL.DisplayAlerts = false; 

      oWB = oXL.Workbooks.Add(Missing.Value); 

      oSheet = (Excel.Worksheet)oWB.ActiveSheet; 
      oSheet.Name = "Data"; 

      int rowCount = 1; 
      foreach (DataRow dr in dt.Rows) 
      { 
       rowCount += 1; 
       for (int i = 1; i < dt.Columns.Count + 1; i++) 
       { 
        // Add the header the first time through 
        if (rowCount == 2) 
        { 
         oSheet.Cells[1, i] = dt.Columns[i - 1].ColumnName; 
        } 
        oSheet.Cells[rowCount, i] = dr[i - 1].ToString(); 
       } 
      } 


      oRange = oSheet.get_Range(oSheet.Cells[1, 1], 
          oSheet.Cells[rowCount, dt.Columns.Count]); 
      oRange.EntireColumn.AutoFit(); 

      oSheet = null; 
      oRange = null; 
      oWB.SaveAs(filepath, Excel.XlFileFormat.xlWorkbookNormal, 
       Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
       Excel.XlSaveAsAccessMode.xlExclusive, 
       Missing.Value, Missing.Value, Missing.Value, 
       Missing.Value, Missing.Value); 
      oWB.Close(Missing.Value, Missing.Value, Missing.Value); 
      oWB = null; 
      oXL.Quit(); 
     } 
     catch 
     { 
      throw; 
     } 
     finally 
     { 

      GC.WaitForPendingFinalizers(); 
      GC.Collect(); 
      GC.WaitForPendingFinalizers(); 
      GC.Collect(); 
     } 

     return true; 
    } 

quand je lance mon code je reçois erreur

Impossible de charger le fichier ou l'assembly « bureau, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 71e9bce111e9429c 'ou l'une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.

Je ne suis pas installé ms office sur mon PC.

Je pensais que je n'avais pas installé MSOffice sur mon PC, donc seulement j'ai des erreurs.

si cela est l'erreur pas que je fait une erreur dans mon code quelqu'un peut me dire

Répondre

1

Excel Interop crée une instance Excel sur votre machine - si vous devez avoir installé pour pouvoir l'utiliser. De plus, vous devez avoir installé la version correcte de d'Excel. Pour prendre en charge les versions d'Excel plus récentes que X, utilisez la liaison tardive contre la version X d'Excel Interop.