Dernière mise à jour le 30/04/17
Présentation
Dans ce présent article, Nous allons voir comment envoyer des données d’un DataGridView dans un tableur Excel en utilisant uniquement 3 colonnes (Colonne 1, Colonne 2, Colonne3) du DataGridView.
Chaques données rentrées dans le tableau du DataGridView seront envoyées dans un tableur Excel en respectant la mise en forme.
Une petite vidéo disponible afin de mieux comprendre est disponible dans la rubrique “Prototype” ainsi que la programmation en C#.
Programmation en C#
Avant de commencer la programmation en C# il faut avant tout ajouter la référence Microsoft Excel pour que Visual Studio puisse communiquer avec Excel
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.CurrentCell.Style.BackColor = Color.LightGreen;
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.RowHeadersVisible = false; // on modifie l'aspect du tableau
dataGridView1.ColumnCount = 3; // ajouter 3 colonnes afin de placer les lignes dans chaque colonnes
dataGridView1.Columns[0].Name = "Colonne 1"; // colonne 1
dataGridView1.Columns[1].Name = "Colonne 2"; // colonne 2
dataGridView1.Columns[2].Name = "Colonne 3"; // colonne 3
}
private void button2_Click(object sender, EventArgs e)
{
var excelApp = new Excel.Application();
excelApp.Visible = true;
Excel._Worksheet workBooks = (Excel.Worksheet)excelApp.ActiveSheet;
//Ouverture du fichier Excel, à vous de choisir l'emplacement ou est situé le fichier excel ainsi que son nom!!
Microsoft.Office.Interop.Excel._Workbook workbook = excelApp.Workbooks.Open(@"C:\Users\Julien\Desktop\Classeur1.xlsx");
workBooks = workbook.Sheets["Feuil1"]; // On sélectionne la Feuil1
workBooks = workbook.ActiveSheet;
workBooks.Name = "Electronique71.com"; // on renomme la Feuil1
dataGridView1.RowHeadersVisible = false;
for (int Rows = 1; Rows < dataGridView1.Columns.Count + 1; Rows++)
{
workBooks.Cells[1, Rows] = dataGridView1.Columns[Rows - 1].HeaderText;
}
// on recopie toutes les valeurs du DataGridView dans le fichier Excel
for (int Rows = 0; Rows < dataGridView1.Rows.Count - 1; Rows++)
{
for (int Columns = 0; Columns < dataGridView1.Columns.Count; Columns++)
{
workBooks.Cells[Rows + 2, Columns + 1] = dataGridView1.Rows[Rows].Cells[Columns].Value;
}
}
// sauvegarde du fichier Excel (volontairement j'ai créer un dossier sur le bureau nommé Electronique71
// puis dans ce dossier j'ai renommé le classeur Excel "Classeur1.xlsx" sous le nom "Fichier")
workbook.SaveAs(@"C:\Users\Julien\Desktop\Electronique71\Fichier",
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// Fermeture de l'application Excel
excelApp.Quit();
}
}
}
|
Prototype en vidéo
Dans ce prototype je vais créer un classeur que je vais nommer “Classeur1.xlsx” puis je vais créer un dossier nommé “Fichier”, ensuite le reste sera exécuté par la programmation en C#
Historiques
30/04/17
– Première mise à disposition