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