datagridview

Mattepuffo's logo
Esportare DataGridView in Excel

Esportare DataGridView in Excel

In un altro articolo abbiamo visto come esportare una DataGridView in formato TXT.

Ora vediamo come esportarla in formato Excel, sicuramente più comodo da visualizzare rispetto al TXT.

Prima di tutto nel nostro progetto dobbiamo aggiungere una referenza.

Cliccate col tasto destro sul progetto -> Aggiungi riferimento -> .NET -> Microsoft.Interop.Excel

A qusto punto ho aggiunto un Item nel menu con questo evento:

private void saveXLSToolStripMenuItem_Click(object sender, EventArgs e)
{
    DialogSalvaXls dlg = new DialogSalvaXls();
    dlg.dialog(dataGridViewEntrate);
}

Non faccio altro che lanciare un SaveFileDialog e passargli la DataGridView da esportare.

Per il SaveFileDialog potete guardare qua.

Mattepuffo's logo
Stampare con C#

Stampare con C#

Mnetre stampare una JTable in Java è piuttosto semplice, stampare una DataGridView in C# non è così immediato.

Prima di tutto nel Windows Form aggiungete un oggetto PrintDocument.

Ve lo ritroverete in basso; selezionatelo e nelle proprietà impostate il DocumentName e tra gli eventi impostate l'evento PrintPage.

L'evento sarà una cosa del genere:

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    Bitmap bm = new Bitmap(this.dataGridViewEntrate.Width, this.dataGridViewEntrate.Height);
    Rectangle rc = new Rectangle(0, 0, this.dataGridViewEntrate.Width, this.dataGridViewEntrate.Height);
    dataGridViewEntrate.DrawToBitmap(bm, rc);
    e.Graphics.DrawImage(bm, 0, 0);
}

In pratica definiamo l'area da stampare e trasformiano la DataGridView in una Bitmap.

Per fare le cose per bene aggiungiamo anche un oggetto PrintDialog e nelle proprietà impostiamo Document impostando printDocument1....(controllate anche le opzioni che sono interessanti).

Mattepuffo's logo
Esportare una DataGridView con C#

Esportare una DataGridView con C#

Il controllo DataGridView è molto usato quando si vogliono mostrare i dati in forma tabellare.

E' molto comune riempirlo da database.

Se volessimo poi esportare il contenuto corrente senza eseguire altre query?

Io ho impostato il tutto per esportarlo sotto forma di string.