2013-05-23 4 views
0

J'utilise Excel 2010 je le code suivant que je veux exporter vers un fichier xls mais je reçois le message suivant:C# exporter vers fichier excel obtenir un message d'erreur

Le fichier que vous essayez de open, 'Report.xls', est dans un format différent de celui spécifié par l'extension de fichier. Vérifiez que le fichier n'est pas corrompu et qu'il s'agit de la source approuvée avant d'ouvrir le fichier. Voulez-vous ouvrir le fichier maintenant?

Notez que s'ouvre encore, mais ne sais pas pourquoi je reçois le message

  .... 
      a.Fill(dtRecords); 

      Response.ClearContent(); 
      Response.AddHeader("content-disposition", "attachment;filename=Report.xls"); 
      Response.ContentType = "application/ms-excel"; 
      string tab = string.Empty; 

      foreach (DataColumn datacol in dtRecords.Columns) 
      { 
       Response.Write(tab + datacol.ColumnName); 
       tab = "\t"; 
      } 
      Response.Write("\n"); 

      foreach (DataRow dr in dtRecords.Rows) 
      { 
       tab = ""; 
       for (int j = 0; j < dtRecords.Columns.Count; j++) 
       { 
        Response.Write(tab + Convert.ToString(dr[j])); 
        tab = "\t"; 
       } 

       Response.Write("\n"); 
      } 
      Response.End(); 

Répondre

0

je crois que le type mime officiel .xls fichiers est application/vnd.ms-excel (source)

+0

Merci. J'ai essayé mais j'ai toujours le même message. –

1

Vous obtenez ce message parce que vous essayez d'exporter le flux de valeurs séparées par des caractères (CSV) en tant que fichier XLS. CSV est un format textuel, alors que XLS est un format binaire complexe avec beaucoup plus de fonctionnalités que CSV. MS Excel se plaint parce qu'il a d'abord essayé d'ouvrir le fichier en tant que XLS mais il a compris que ce fichier n'est pas XLS, donc il affiche un message d'avertissement, mais il est encore assez intelligent pour comprendre que ce fichier est CSV.

Essayez d'enregistrer le fichier avec l'extension .csv et avec le type de contenu text/csv.

+0

Excel 2007 et les versions antérieures ne fournissaient pas cet avertissement lors de l'ouverture d'un fichier avec une extension .XLS qui était formatée en tant que valeurs séparées par des virgules (CSV) ou valeurs séparées par des tabulations (TSV). L'avertissement a démarré avec Excel 2010, de sorte que les utilisateurs ayant des versions antérieures d'Excel ne reçoivent pas ce message d'avertissement. –