30 de junho de 2011

Office Application - Criando Business Entities e inserindo em uma planilha Excel

Utilizando: Visual Studio 2010, Framework 4.0, C# e Office 2007.

1 - Crie um novo projeto windows | console application.
2 - Defina o nome do projeto como OfficeApplication
3 - Adicione duas referencias: Microsoft.Office.Interop.Excel Microsoft.Office.Interop.Word



















Obs : certifique-se que a versão selecionada é 12.0.0.0

4 - Adicione uma nova classe chamada Account.cs
5 - Adicione as propriedades abaixo:


    public class Account
    {
        public int ID { get; set; }
        public double Balance { get; set; }
        public string AccountHolder { get; set; }
    }

6 - Crie um novo método chamado CreateAccountList na classe Program.cs

        private static List<Account> CreateAccountList()
        {
            var checkAccounts = new List<Account> {
            new Account{
                ID = 1,
                Balance = 285.93,
                AccountHolder = "John Doe"
            },
            new Account {
                ID = 2,
                Balance = 2349.23,
                AccountHolder = "Richard Roe"
            },
            new Account {
                ID = 3,
                Balance = -39.46,
                AccountHolder = "I Dunoe"
            }
                };
            return checkAccounts;
        }

7 - No método Main da classe Program.cs adicione o código abaixo :

static void Main(string[] args)
        {
            var checkAccounts = CreateAccountList();
        }


8 - Na classe Programa.cs adicione os namespace :


using Microsoft.Office.Interop;
using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;


9 - Abaixo do método Main insira o bloco de código abaixo que cria um nova planilha :


        static void DisplayInExcel(this IEnumerable<Account> accounts,
                          Action<Account, Excel.Range> DisplayFunc)
        {
            var x1 = new Excel.Application();

            //veja as Células abaixo criando o cabeçalho
            x1.Workbooks.Add();
            x1.Visible = true;
            x1.get_Range("A1").Value2 = "ID";
            x1.get_Range("B1").Value2 = "Balance";
            x1.get_Range("C1").Value2 = "Account Holder";
            x1.get_Range("A2").Select();

            foreach (var ac in accounts)
            {
                DisplayFunc(ac, x1.ActiveCell);
                x1.ActiveCell.get_Offset(1, 0).Select();
            }

            ((Excel.Range)x1.Columns[1]).AutoFit();
            ((Excel.Range)x1.Columns[2]).AutoFit();
            ((Excel.Range)x1.Columns[3]).AutoFit();
        }


Obs: É necessário a alterar a classe Program.cs  para static como exemplo abaixo:


    static class Program
    { ...


10 - Adicione no seu método Main da classe Program.cs o bloco de código abaixo :


            checkAccounts.DisplayInExcel((account, cell) =>
            {
                cell.Value2 = account.ID;
                cell.get_Offset(0, 1).Value2 = account.Balance;
                cell.get_Offset(0, 2).Value2 = account.AccountHolder;

                if (account.Balance < 0)
                {
                    cell.Interior.Color = 255;
                    cell.get_Offset(0, 1).Interior.Color = 255;
                    cell.get_Offset(0, 2).Interior.Color = 255;
                }
            });

11  - Aperte F5 para executar o projeto e veja como ficou.

















Fonte : Microsoft Training Kit VS2010

Um comentário:

  1. Fala meu querido.

    Cara, que Deus abençoe sua vida. Sei de sua capacidade.

    Tenha certeza que estarei acompanhando você pelo blog. Tenho muito para aprender com você.

    Mostre o que você sabe.

    Abraços

    ResponderExcluir