2010-07-06 3 views
0

Hallo, je folowing code:Erreur lors du formatage des cellules avec des nombres par OleDbDataAdapter et Excel

 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\"Excel 8.0;Imex=1;HDR=False;\""); 
     OleDbDataAdapter da = new("select * from [" + TableName + "$]", con); 
     DataSet dsData = new System.Data.DataSet(); 

     con.Open(); 

     da.Fill(dsData); 

     dataGridView1.DataSource = dsData.Tables[0]; 

J'essaie de lire les données à partir du fichier créé par Excel 2007 SP2.

Si mon fichier Excel (test.xls) est fermé, le formatage des cellules avec les nombres est correct dans la table de dataGridView1.

Comme ceci: 5,0 (formated avec un seul endroit par des virgules) montre que 5,0

Si mon fichier d'Excel (test.xls) est ouvert, la mise en forme des cellules avec les numéros ne sont pas droit .

Comme ça: 5,0 montre 5 !!!

Excel 2007 SP2 Microsoft Visual C# 2008 Framework .Net 2.0

Merci pour toute l'aide

Répondre

0

Je ne pense pas que vous pouvez définir la mise en forme avec OleDB, je pense que ne se soucie de la Les données. Si vous souhaitez formater les données comme vous le souhaitez, vous devrez peut-être vous rabattre sur Excel Automation où vous auriez un contrôle total (il peut être plus efficace d'écrire les données à l'aide de OleDB, puis d'ouvrir le fichier avec Automation et régler le formatage).

Si vous aller dans cette voie, voici un échantillon: How to automate Microsoft Excel from Microsoft Visual C#.NET

Bien être conscient que cela ne soit pas recommandé si vous travaillez sur un serveur.

Questions connexes