Soyez le premier à donner votre avis sur cette source.
Snippet vu 26 520 fois - Téléchargée 17 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; }
Avec le code que g posté juste au dessus, il m'est impossible de modifier les cellules de mon datagridview (manuel ou prog).
Quand je fais :
foreach (var ang in toutExcel.Where(a => a.myticker.EndsWith("LN")))
{
ang.mycourspyc /= 100;
}
Il me dit cannot modify because it is readonly.
Qq'un peut-il m'aider svp
var fonds = from fond in dt01.AsEnumerable()
where fond.IsNull("Ponds")==false &&
fond.Field<double>("Fonds") == 3
select new
{
myfond = fond.Field<double>("Fonds"),
myticker = fond.Field<string>("Tickers"),
myweight = fond.Field<double>("Ponds"),
myisin = fond.Field<string>("Id Isin"),
myname = fond.Field<string>("Name"),
};
dataGridView1.DataSource = fonds.ToList();
Magnifique merci beaucoup pour le début sans quoi rien n'aurait été possible...
Salutations à vous tous ...
private void button1_Click(object sender, EventArgs e)
{
DataTable dt =
GetFeuilleFichierExcel(jeudi.xls, "xxx");
if (dt != null && dt.Rows.Count > 0)
{
dataGridView1.DataSource = dt; // ok
}
// LINQ
var query = from ticker in dt.AsEnumerable()
where ticker.Field<string>("Tickers") == "MTP FP"
select new
{
//myfond = ticker.Field(dt.Columns[0]),
myticker = ticker.Field<string>("Tickers"),
myisin = ticker.Field<string>("Id Isin"),
myname = ticker.Field<string>("Name")
};
dataGridView2.DataSource = query.ToList();
}
Donc je query la datagridview1 et avec linq je retourne les resultats dans la datagridview2. SUPER...
Mais maintenant mon pb est comment puis-je faire des querry sur des int ? en effet mes query ne marchent qu'avec des strings ! par ex dans la colonne 3 j'ai des chiffres et je voudrais pouvoir selectioner seulement les chiffres qui dépassent 5%. Merci pour votre aide.
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.