Soyez le premier à donner votre avis sur cette source.
Snippet vu 27 629 fois - Téléchargée 19 fois
/// <summary> /// Permet de charger le contenue d'une feuille excel dans une DataTable à partir du chemin et le nom de la feuille désirée /// </summary> /// <param name="strcheminFichier">Chemin du fichier Excel</param> /// <param name="strNomFeuilleExcel">Nom de la feuille excel</param> /// <returns>DataTable contenant l'ensemble des celulles et lignes du fichier Excel. Si la feuille est vide le retour est égal à "Null"</returns> /// <remarks>Aucune gestion d'exception n'est faite à l'intérieur de cette méthode</remarks> public DataTable GetfichierFeuilleFichierExcel(string strCheminFichier, string strNomFeuilleExcel) { // Chaine de connexion string strCnx = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strCheminFichier + ";Extended Properties=" + (char)34 + "Excel 8.0;HDR=Yes;" + (char)34 + ";"; System.Data.DataTable dtRetour = null; System.Data.OleDb.OleDbConnection oCnx = new System.Data.OleDb.OleDbConnection(strCnx); System.Data.OleDb.OleDbCommand objCmdSelect = null; System.Data.OleDb.OleDbDataAdapter objAdapter = null; System.Data.DataSet oDs = new DataSet(); // vérification globale des données entrantes if(strCheminFichier != string.Empty && strNomFeuilleExcel != string.Empty) { if(System.IO.File.Exists(strCheminFichier)) { // ouvertur de la connexion oCnx.Open(); // création de la commande objCmdSelect =new System.Data.OleDb.OleDbCommand("SELECT * FROM ["+ strNomFeuilleExcel +"$]", oCnx); objAdapter = new System.Data.OleDb.OleDbDataAdapter(); // on informe de l'instruction SELECT objAdapter.SelectCommand = objCmdSelect; // on execute la requete en spécifiant le protocole et on remplit le DataSet objAdapter.Fill(oDs, "XLData"); // Vérification du dataset if(oDs != null && oDs.Tables != null && oDs.Tables.Count > 0) { dtRetour = oDs.Tables[0]; } else { dtRetour = null; } // Libération oCnx.Close(); objCmdSelect.Dispose(); objAdapter.Dispose(); } } return dtRetour; }
25 sept. 2007 à 20:58
Merci d'avance.
20 févr. 2008 à 09:08
9 avril 2008 à 14:22
En fait cela revient au problème de type de donné que julsupinfo à rencontré.
Lorsqu'on importe le fichier excel VS interprète la colonne étant typé comme la première valeur. C'est a dire que si dans votre colonne votre première valeur (case) est un chiffre il s'attend dans la suite de la colonne à trouver des chiffres, et si il rencontre autre chose (du texte) il ne l'affiche pas...
Julsupinfo a résolu son pb en rajoutant de manière à n'avoir que du string dans son fichier excel...Moi je n'ai pas la chance de pourvoir modifier les données de mon excel, et devinez quoi dans une des colonne j'ai du string ET du num...
Quelqu'un aurait t il une idée pour que VS affiche tout??? Même si il transforme tout en string ca me dérange vraiment pas! Mais faut absolument que j'arrive a afficher toutes les donnés et sans modifier l'excel!
7 déc. 2008 à 18:29
private void button1_Click(object sender, EventArgs e)
{
DataTable dt =
GetfichierFeuilleFichierExcel
(@"E:\Coursjeudi.xls", "Bloomberg");
if (dt != null && dt.Rows.Count > 0)
{
// WOUAWWW !!! merci
dataGridView1.DataSource = dt; // ok
}
}
Maintenant je voudrais poser une ou deux questions svp.
Comment faire une recherche (une query) dans le datagridview ? Peut-on utiliser linq ?
Je voudrais par exemple savoir les cellules de la colonne 3 dont la valeur est superieur à 5% et les afficher dans un labelbox.
Merci de votre aide...
30 déc. 2008 à 09:35
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.