Posts Tagged ‘Gridview’
Geração de arquivos Excel em .Net – Usando GridView
terça-feira, abril 8th, 2008Vamos abordar um assunto de muita utilidade para quem trabalha com desenvolvimento de sistemas, a geração de arquivos em Excel (.xls). Neste post vamos analisar a geração de arquivos .xls em ambiente web usando o GridView, uma forma prática e rápida de gerar relatórios simples. O método gerador recebe um DataTable com informações vindas de um banco de dados. Segue o código da classe geradora:
Imports System.IO Imports System.Drawing Imports System.Data Imports System.Web Imports System.Web.UI Imports System.Web.UI.WebControls '''----------------------------------------------------------------------------- ''' Classe para geração de relatórios Excel. Utiliza o componente ''' System.Web.UI.WebControls.GridView para geração do arquivo .xls. '''----------------------------------------------------------------------------- Public Class ExcelReport ''' Nome do arquivo Excel Private _file As String ''' Objeto GridView Private gv As GridView ''' Construtor, recebe o nome do arquivo .xls como parâmetro ''' String contendo o nome do arquivo .xls a ser gerado. Public Sub New(ByVal file As String) Me._file = file ' Cria o GridView gv = New GridView() ' Formatação do GridView para que a planilha fique "zebrada" gv.HeaderStyle.ForeColor = Color.Black gv.AlternatingRowStyle.BackColor = Color.Yellow gv.RowStyle.BackColor = Color.White End Sub ''' Gera um arquivo Excel a partir de um DataTable. ''' Instância do objeto DataTable Public Sub DataTableToExcel(ByRef dt As DataTable) If dt.Rows.Count < 65536 Then Dim response As HttpResponse = HttpContext.Current.Response response.Clear() response.AddHeader("Content-Disposition", "attachment; filename=" + Me._file) response.ContentType = "application/vnd.ms-excel" Dim stringWrite As New StringWriter Dim htmlWrite As New HtmlTextWriter(stringWrite) gv.DataSource = dt gv.DataBind() gv.RenderControl(htmlWrite) response.Write(stringWrite.ToString) response.End() Else ' se tiver mais que 65536 linhas, dispara a exception Throw New Exception("Consulta deve conter menos que 65536 linhas") End If End Sub End Class
Adicionar registros pelo rodapé do GridView
segunda-feira, agosto 27th, 2007Sem dúvida alguma o controle GridView trouxe inúmeras melhorias sobre seu antecessor, o DataGrid. Mas um detalhezinho tem incomodado a comunidade de programadores .Net: quando não existem registros a exibir no GridView, ele simplesmente não exibe o controle, impossibilitando a inserção de registros através do rodapé quando não há nenhum registro, como muitos faziam no DataGrid.
Mas como na informática nada é impossível
, meu amigo Marco Chilá conseguiu uma solução para essa "coisinha chata" do GridView e postou em seu blog. Vale a pena dar uma olhada na solução…
Mudando cor de fundo da linha do GridView em tempo de execução
terça-feira, agosto 14th, 2007Esses dias precisei de uma rotina que altera a cor de fundo da linha do GridView em tempo real. A princípio achei que fosse apenas atribuir uma string com a cor em hexadecimal (formato usado no HTML) para a propriedade BackColor do GridViewRow que já estaria resolvido, mas não deu certo pois a propriedade BackColor é do tipo System.Drawing.Color e não aceita strings. Dei uma fuçada nas classes do namespace System.Drawing e encontrei a solução:
e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF0000")
Coloquei o código no evento RowDatabound do GridView e deu certo. Fica aí a dica para os iniciantes em .Net como eu. ![]()