Bonjour à tous,
Je souhaiterais afficher une photo dans un document Excel à partir de son chemin sous C#. Si quelqu'un à une idée et qu'il voudrait bien aider.
J'enregistre le chemin de la façon suivante:
Récupération:
private void lblPhoto_Click(object sender, EventArgs e) { try { // Nom du fichier de la photo à ajouter OpenFileDialog ofdImage = new OpenFileDialog(); ofdImage.Title = "Selectionner la Photo à inserer"; ofdImage.CheckFileExists = true; //ofdImage.InitialDirectory = Application.StartupPath; ofdImage.Filter = "Fichiers image (*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*"; ofdImage.FilterIndex = 1; ofdImage.RestoreDirectory = true; if (ofdImage.ShowDialog() == DialogResult.OK) { // Affichage de la photo au format bitmap this.pbxPhoto.Image = (Image)new Bitmap(ofdImage.FileName); this.txtNomPhoto.Text = ofdImage.FileName.ToString(); // Pas encore d'id pour la nouvelle Photo this.gbxEquipage.Text = "Nouvel Equipage"; this.gbxEquipage.Tag = null; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Erreur"); } }
Enregistrement:
private void btnNouveau_Click(object sender, EventArgs e) { #region NOUVEAU if (this.btnNouveau.Text == "&Nouveau") { this.toolTip1.SetToolTip(this.btnNouveau, "Sauvegarder Nouvel Enregistrement"); this.toolTip1.SetToolTip(this.btnAnnuler, "Annuler tout"); this.pbxPhoto.BackColor = Color.Blue; Defaut(); Montrer_btn(true); this.txtMatricule.Text = " "; this.txtMatricule.SelectAll(); this.txtMatricule.Focus(); this.txtCodeEquipage.Text = ""; this.lblTotal.Visible = false; this.btnNouveau.Text = "&Sauver"; this.btnNouveau.BackColor = Color.Blue; this.btnAnnuler.Text = "&Annuler"; this.btnAnnuler.BackColor = Color.MediumSeaGreen; this.btnModifier.Enabled = false; this.btnSupprimer.Enabled = false; this.btnPrecedent.Enabled = false; this.btnSuivant.Enabled = false; this.btnPremier.Enabled = false; this.btnDernier.Enabled = false; this.lblPosition.Text = "00/00"; this.AcceptButton = this.btnNouveau; this.dgvEquipages.Visible = false; } #endregion #region SAUVER else if (this.btnNouveau.Text == "&Sauver") { if ((this.txtCodeEquipage.Text == "") || (this.txtCodeEquipage.Text == " ")) { MessageBox.Show("Le Matricule du Soldat\nest obligatoire", "Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Information); this.txtMatricule.Text = " "; this.txtMatricule.Focus(); this.txtMatricule.SelectAll(); } else { if ((this.txtGrade.Text == "") | (this.txtGrade.Text == "---")) { MessageBox.Show("Veuillez saisir le Grade\ndans la zone correspondante", "Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Information); this.txtGrade.Text = "---"; this.txtGrade.Focus(); this.txtGrade.SelectAll(); } else { if ((string.IsNullOrEmpty(this.txtNomEquipage.Text)) || (this.txtNomEquipage.Text == " ")) { MessageBox.Show("Veuillez Saisir\nle Nom du Militaire svp", "Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Information); this.txtNomEquipage.Text = " "; this.txtNomEquipage.Focus(); this.txtNomEquipage.SelectAll(); } else { if ((string.IsNullOrEmpty(this.txtPrenomEquipage.Text)) || (this.txtPrenomEquipage.Text == " ")) { MessageBox.Show("Veuillez Saisir\nle Prénom du Militaire svp", "Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Information); this.txtPrenomEquipage.Text = " "; this.txtPrenomEquipage.Focus(); this.txtPrenomEquipage.SelectAll(); } else { if (this.tDateNaissance.Text == "") { MessageBox.Show("Veuillez Indiquer la Date\nde Naissance\ndu Militaire", "Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Information); this.txtDateNaissance.Focus(); this.txtDateNaissance.Select(); } else { if ((this.txtLieuNaissance.Text == "") | (this.txtLieuNaissance.Text == "---------------")) { MessageBox.Show("Veuillez saisir\nle Lieu de Naissance\ndans la zone correspondante", "Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Information); this.txtLieuNaissance.Text = "---------------"; this.txtLieuNaissance.Focus(); this.txtLieuNaissance.SelectAll(); } else { if (this.pbxPhoto.Image == null) { MessageBox.Show("Veuillez Ajouter la photo\ndu Militaire", "Enregistrement", MessageBoxButtons.OK, MessageBoxIcon.Information); this.lblPhoto.ForeColor = Color.Red; } else { //Declaration d'une boite de dialogue "YesNo" //Si l'utilisateur confirme l'Enregistrement on exécute la requette if (MessageBox.Show("Êtes-vous sûr de vouloir Ajouter" + "\n" + "un nouvel enregistrement?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { OleDbConnection Cnex = new OleDbConnection(strConex); Cnex.Open(); System.Data.OleDb.OleDbDataReader DtReader; String Sqlquery = "SELECT * FROM [PERSONNELS] where matricule=@p01"; System.Data.OleDb.OleDbCommand Cmder = new System.Data.OleDb.OleDbCommand(Sqlquery, Cnex); Cmder.Parameters.Add(new OleDbParameter("p01", System.Data.OleDb.OleDbType.VarWChar, 50, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, (this.txtCodeEquipage.Text))); DtReader = Cmder.ExecuteReader(); if (DtReader.Read() != true) { // Connexion à la base de données OleDbConnection Conex = new OleDbConnection(strConex); //Préparation des paramètres OleDbParameter Param_CodeEqui = new OleDbParameter("@CodeEqui", OleDbType.VarWChar, 50); //0 OleDbParameter Param_CodeGrd = new OleDbParameter("@CodeGrd", OleDbType.VarWChar, 5);//1 OleDbParameter Param_NomEq = new OleDbParameter("@NomEq", OleDbType.VarWChar, 50); //2 OleDbParameter Param_PrenomEq = new OleDbParameter("@PrenomEq", OleDbType.VarWChar, 50); //3 OleDbParameter Param_DateNaiss = new OleDbParameter("@DateNaiss", OleDbType.Date, 8);//4 OleDbParameter Param_CodeLieu = new OleDbParameter("@CodeLieu", OleDbType.VarWChar, 50);//5 OleDbParameter Param_NomPhoto = new OleDbParameter("@NomPhoto", OleDbType.VarWChar, 50);//6 Param_CodeEqui.Value = this.txtMatricule.Text; //0 Param_CodeGrd.Value = this.txtGrade.Text;//1 Param_NomEq.Value = this.txtNomEquipage.Text;//2 Param_PrenomEq.Value = this.txtPrenomEquipage.Text;//3 Param_DateNaiss.Value = this.txtDateNaissance.Text;//4 Param_CodeLieu.Value = this.txtLieuNaissance.Text;//5 Param_NomPhoto.Value = this.txtNomPhoto.Text;//6 string sInsertionSQL = string.Format("INSERT INTO PERSONNELS([matricule], [grade]," + "\n" + "[nom], [prenoms], [date_naissance], [lieu], [nom_photo])" + "\n" + "VALUES ({0},{1},{2},{3},{4},{5},{6})", Param_CodeEqui.ParameterName, //0 Param_CodeGrd.ParameterName,//1 Param_NomEq.ParameterName,//2 Param_PrenomEq.ParameterName,//3 Param_DateNaiss.ParameterName,//4 Param_CodeLieu.ParameterName,//5 Param_NomPhoto.ParameterName,//6 OleDbCommand Comd = new OleDbCommand(sInsertionSQL.ToString(), Conex); Comd.Parameters.Add(Param_CodeEqui); //0 Comd.Parameters.Add(Param_CodeGrd);//1 Comd.Parameters.Add(Param_NomEq);//2 Comd.Parameters.Add(Param_PrenomEq);//3 Comd.Parameters.Add(Param_DateNaiss);//4 Comd.Parameters.Add(Param_CodeLieu);//5 Comd.Parameters.Add(Param_NomPhoto);//6 Conex.Open(); Comd.ExecuteNonQuery(); MessageBox.Show("Nouvel Enregistrement\najouté avec succès", "Ajout", MessageBoxButtons.OK, MessageBoxIcon.Information); Conex.Close(); Defaut(); Montrer_btn(true); this.txtMatricule.Text = " "; this.txtMatricule.SelectAll(); this.txtMatricule.Focus(); this.txtCodeEquipage.Text = ""; this.lblTotal.Visible = false; this.btnAnnuler.Enabled = true; this.btnAnnuler.Text = "&Annuler"; this.btnAnnuler.BackColor = Color.Green; this.btnNouveau.Text = "&Sauver"; this.btnNouveau.BackColor = Color.Green; this.dgvEquipages.Visible = false; } else { MessageBox.Show("Le titulaire du matricule\nest déjà enregistré", "Enregistrer", MessageBoxButtons.OK, MessageBoxIcon.Information); } DtReader.Close(); Cnex.Close(); } } } } } } } } } #endregion }
AFFICHAGE
private void Afficher() { try { this.txtCodeEquipage.Text = DtSet.Tables[0].Rows[i - 1][0].ToString(); this.txtMatricule.Text = DtSet.Tables[0].Rows[i - 1][0].ToString(); this.txtGrade.Text = DtSet.Tables[0].Rows[i - 1][1].ToString(); this.txtNomEquipage.Text = DtSet.Tables[0].Rows[i - 1][2].ToString(); this.txtPrenomEquipage.Text = DtSet.Tables[0].Rows[i - 1][3].ToString(); this.txtDateNaissance.Text = DtSet.Tables[0].Rows[i - 1][4].ToString(); this.txtLieuNaissance.Text = DtSet.Tables[0].Rows[i - 1][5].ToString(); this.txtNomPhoto.Text = DtSet.Tables[0].Rows[i - 1][6].ToString(); } catch { this.lblPosition.Text = "0/0"; } }
AFFICHAGE DE LA PHOTO
private void txtNomPhoto_TextChanged(object sender, EventArgs e) { try { FileStream fs; fs = new FileStream(this.txtNomPhoto.Text, FileMode.Open, FileAccess.Read); this.pbxPhoto.Image = System.Drawing.Image.FromStream(fs); fs.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Erreur"); } }
Comment pensez-vous que je puisse afficher cette photo dans un document EXCEL. Merci pour votre aide.
Afficher la suite