DataGridView, Excel, PDF e Impressora.

aishihara

Power Member
Boa tarde,

Gostaria de saber, caso alguem tenha alguma ideia se é possível ou se é muito complicado: numa winform em C#, com um datagridview, poder imprimir, exportar para excel ou PDF esta grid?


Desde já agradeço a atenção,

André Ishihara
 
Boas!

Dado que o Ansatsu se encontra suspenso ele pediu-me para te colocar esta resposta:

Ansatsu disse:
Para imprimir uma datagridview:
O Codigo cria um objecto datagridview e depois imprime-o.

Código:
private DataGridViewPrint PrintGrid;
private void btnPrint_Click(object sender, System.EventArgs e)
{
frmPrint fpr = new frmPrint();
fpr.Title = DataGridView1.CaptionText;
fpr.ShowDialog();
if (fpr.Result > 0)
{
PrintGrid = new DataGridViewPrint(printDocument1, DataGridView1, fpr.bBlackWhite);
PrintGrid.PrintTitle = fpr.bTitle;
PrintGrid.Title = fpr.Title;
if (fpr.Result == 1) // Print
{
if (printDialog1.ShowDialog() == DialogResult.OK)
{
printDocument1.Print();
}
}
else if (fpr.Result == 2) // Page setup
{
pageSetupDialog1.ShowDialog();
}
else if (fpr.Result == 3) // Preview
{
printPreviewDialog1.Icon = fpr.Icon;
printPreviewDialog1.ShowDialog();
}
}
}


private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.HasMorePages = PrintGrid.Print(e.Graphics);
}
Ao imprimir, pode mandar imprimir para PDF, logo Imprimir e exportar para PDF está resolvido.


Agora para exportares para Excel é simples.

Primeiro nos componentes tens de adicionar o Microsoft Excel 10.0 Object Library.

Depois usas este codigo:

Código:
Excel.ApplicationClass excel = new Excel.ApplicationClass();
excel.Application.Workbooks.Add(true);
DataTable table = ticketsList.Tables[0];
int cIndex = 0;
foreach(DataColumn col in table.Columns)
{
cIndex++;
excel.Cells[1,cIndex]=col.ColumnName;
}
int rIndex=0;
foreach(DataRow row in table.Rows)
{
rIndex++;
cIndex=0;
foreach(DataColumn col in table.Columns)
{
cIndex++;
excel.Cells[rIndex+1,cIndex] = row[col.ColumnName].ToString();
}
}
excel.Save("New.xls");

Espero que ajude ;)
 
Achei a resposta. Descobri um conjunto de dlls chamado de DataGridViewExtension. E o melhor de tudo é que é de graça e ainda por cima faz tudo o que eu precisava fazer. Imprimir e exportar para Excel e PDF e sem acrecentar muito código.
 
Só a datagridview. Mas tem formas de imprimir a form com a datagridview, embora não me lembre como. Mas tem como fazer isso sim. Isso é uma solução para winforms. Para web você tem que criar uma função java e indicar o trecho cujo o qual você quer imprimir.
 
aishihara podes-me explicar como fizes.t?? estava interessado em por isso num projecto meu tambem!!!


"Gostaria de saber, caso alguem tenha alguma ideia se é possível ou se é muito complicado: numa winform em C#, com um datagridview, poder imprimir, exportar para excel ou PDF esta grid?"

Tou a fazer um projecto de gestão de cosumiveis e nao consigo fazer relatorios para depois imprimir ou guardar em pdf exel etcc... isso dava geito!!

Obrigado
 
Última edição pelo moderador:
aishihara podes-me explicar como fizes.t?? estava interessado em por isso num projecto meu tambem!!!


"Gostaria de saber, caso alguem tenha alguma ideia se é possível ou se é muito complicado: numa winform em C#, com um datagridview, poder imprimir, exportar para excel ou PDF esta grid?"

Tou a fazer um projecto de gestão de cosumiveis e nao consigo fazer relatorios para depois imprimir ou guardar em pdf exel etcc... isso dava geito!!

Obrigado

Já havia dito mas...
Achei a resposta. Descobri um conjunto de dlls chamado de DataGridViewExtension. E o melhor de tudo é que é de graça e ainda por cima faz tudo o que eu precisava fazer. Imprimir e exportar para Excel e PDF e sem acrecentar muito código.

E não se preocupe ele vem com um programa que mostra as funcionalidades.
 
Imprimir uma dataGridView em C#

Ja vi que vosses tao ai a falar numa dll para DataGridViewExtension, se me pudessem dizer para que serve e como se utiliza eu agradecia imenso... ou isso é uma biblioteca que não esta chamada no inicio do programa??

Eu tenho uma dataGridView e faço uma consulta aos dados e depois gostava de puder imprimir essa dataGridView com os dados da consulta só que não consigo...

No codigo postado aqui, o meu compilador não detecta o frmPrint (a variavel criada) nem o DataGridViewPrint...

agradecia que quem souber de uma forma me pudesse responder...
:rolleyes:
 
Última edição:
Back
Topo