Mostrando postagens com marcador session. Mostrar todas as postagens
Mostrando postagens com marcador session. Mostrar todas as postagens

quarta-feira, 17 de abril de 2013

Gerando Excel - Básico


Criar um arquivo Excel através do C# parece ser um bicho de 7 cabeças. Mas não é.
Basta utilizar a dll da Microsoft chamada “Microsoft.Office.Interop.Excel”. Sua utilização é muito simples, basta entender como o Excel funciona.

O Excel se divide em 3 partes:
  • Workbook – Representa o arquivo Excel
  • Worksheet – Representa uma pasta de trabalho
  • Cell – Pode conter uma informação, texto números, etc.


Um Workbook  pode conter N pastas de trabalhos  e uma pasta de trabalho contem N informações.

Nesse exemplo eu vou demonstrar como criar um arquivo excel e preencher algumas células. 

using Microsoft.Office.Interop.Excel;
namespace ExemploConsole
{
    class Program
    {
        static void Main(string[] args)
        {

            Application excel = new Application();
            Workbook wb = excel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
            Worksheet ws = (Worksheet)wb.Worksheets.get_Item(1);

            ws.Name = "Nome da Pasta";
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    Microsoft.Office.Interop.Excel.Range ce = (ws.Cells[i + 1, j + 1] as Microsoft.Office.Interop.Excel.Range);
                    int linha = i + 1;
                    int coluna = j + 1;
                    ce.Value2 = "Valor: " + linha + " x " + coluna;
                }

            }
            wb.SaveAs("c:\\temp\\excelTeste.xlsx", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

            excel.Quit();

        }
    }
}




Como pode ser visto no código acima, eu criei um workbook (wb) e um worksheet (ws).  

Fiz dois loops para adicionar informações em 10 linhas e em 10 colunas e por fim, salvei o arquivo. 

Veja o resultado:



Esse exemplo é muito útil para quem deseja criar um relatório simples em Excel.


sexta-feira, 12 de abril de 2013

Criptografar senha

Aqui vai uma dica de como criptografar uma senha.

Eu particularmente utilizo um método um pouco peculiar mas que já vi várias pessoas utilizando.
No exemplo abaixo eu concateno  usuário e senha criando um Hash com essa informação. veja o exemplo:


using System.Security.Cryptography;


public static string AcertaSenha(string _login, string _senha)
{
    StringBuilder senha = new StringBuilder();

    MD5 md5 = MD5.Create();
    byte[] entrada = Encoding.ASCII.GetBytes(_login + "//" + _senha);
    byte[] hash = md5.ComputeHash(entrada);
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < hash.Length; i++)
    {
senha.Append(hash[i].ToString("X2"));
    }
    return senha.ToString();
}

Se eu passar o usuário "celso" e a senha "12345" o resultado será:
321F8F2C95B3AE3F5B9DAD4B58CF1819

em outra situação, se eu passar o usuário "CELSO" e a senha "12345" o resultado será:
5B105E94EB8276DB9738A92AFF8A490F


:)

quarta-feira, 10 de abril de 2013

Sessão - ASP.Net

As vezes precisamos manter algumas informações na memória para utilizar em qualquer lugar do site e
enviar informações por post ou query string nem sempre é a solução. A solução nesse caso é a utilização da sessão.

Sempre que acessamos um  site automaticamente u ma sessão é criada.

Podemos manter qualquer tipo de informação na sessão, texto, valores, imagens.  por exemplo:

Session["Nome"] = "Celso Zequim";

Para resgatar o valor da sessão é simples:

string nome =(string) Session["Nome"];

Esse valor estará disponível em qualquer página do site.

também é possível incluir um objeto na sessão.  por exemplo:

Criei um objeto para guardar o nome e o email do usuário logado no sistema.

public class UsuarioLogado
{

    public string Nome;
    public string email;
    public UsuarioLogado() { }
}

no arquivo Global.asax.cs indiquei no inicio da sessão qual é o objeto a ser carregado.
protected void Session_Start(object sender, EventArgs e)
{
    UsuarioLogado usuario = new UsuarioLogado();
    Session["UsuarioLogado"] = usuario;
}

ou seja, toda vez que alguém acessar o site, automaticamente será criado um objeto UsuarioLogado na sessão.
para atribuir um valor a esse objeto é só seguir o exemplo:

UsuarioLogado usuario = (UsuarioLogado)Session["UsuarioLogado"];
usuario.Nome = "Celso";
usuario.email = "czequim@gmail.com";