Dernière mise à jour le 18/03/16

Présentation



Nous allons voir qu’il est tout à fait possible à partir d’une ListView développer dans l’environnement C#, d’exporter ces données dans un fichier excel. Nous verrons aussi comment importer la référence “Microsoft Excel”



Programmation en C#


Ci-dessous vous retrouvez la correspondance des boutons:

Ensuite une fois avoir mis en place tous les boutons ainsi que les TextBox, il ne faut pas oublier d’insérer la référence “Microsof Office Excel” (voir ci-dessous)

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using Excel = Microsoft.Office.Interop.Excel; // permet d'activer la référence qu'il ne faut pas oublier (dll)

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        const string EXCEL_PROG_ID = "Excel.Application";

        const uint MK_E_UNAVAILABLE = 0x800401e3;

        const uint DV_E_FORMATETC = 0x80040064;

        public Form1()
        {
            InitializeComponent();
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Mise en mode détails
            listView1.View = System.Windows.Forms.View.Details;
            // Construction des colonnes
            // La largeur de la colonne est modifiable en changeant la valeur de (0.2) 
            listView1.Columns.Add(textBox1.Text, (int)(0.2 * listView1.Width));
            // Ajout des lignes
            listView1.GridLines = true;
            textBox1.Clear();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            // Construction d'une ligne (1 élément + 2 colonnes supplémentaires) 
            ListViewItem lvi1 = new ListViewItem(textBox2.Text); // dans 1er colonne           
            lvi1.SubItems.Add(textBox3.Text); // dans 2ème colonne 
            lvi1.SubItems.Add(textBox4.Text); // dans 3ème colonne 


            listView1.Items.Add(lvi1); // Ajout des lignes

            textBox2.Clear();
            textBox3.Clear();
            textBox4.Clear();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            
                var ExcelApp = new Excel.Application();

                ExcelApp.Visible = true;
                var wb = ExcelApp.Workbooks.Add(1); // déclaration variable WorkBooks
                var ws = wb.Worksheets[1]; // déclaration variable WorkSheets
                int Columns = 1;
                int Rows = 1;
                foreach (ListViewItem lvi in listView1.Items)
                {
                    Columns = 1;
                    foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
                    {
                        ws.Cells[Rows, Columns] = lvs.Text;
                        Columns++; // incrémente les colonnes
                    }
                    Rows++; // incrémente les rangées
                }  
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }
        
    }
}

Prototype en vidéo


Une vidéo ?? Oui bien-sûr !!

 

Historiques


18/03/16
– Première mise à disposition