Há um tempo atrás escrevi um post sobre como fazer uma leitura de arquivo Word utilizando o C#. Achei que para fosse fazer a mesma coisa para o Excel, mas diferentemente, vou fazer uma conexão para acessar o Excel. Isso mesmo! Como se fosse um banco de dados.
Para fazer fazer essa conexão no .NET, vamos executar o comando Ado.Net, que vai fazer um select na planilha Excel.
Para começar, vamos mostrar como está a nossa planilha no Excel, que peguei de um exemplo de outro colega, e vamos ver quais as informações importantes para o nosso programa em .Net.
Conteúdo da planilha:
Vejam que a planilha tem os títulos das colunas na primeira linha. Estes serão os nomes dos campos para o nosso comando Select, e também o nome da planilha, que é Sheet1, será o nome da nossa tabela.
Agora crie um projeto, pode ser WindowsForm mesmo e crie a classe de conexão com a planilha, usando OleDB:
OleDbConnection conexao = new OleDbConnection(@”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\temp\planilha.xlsx;Extended Properties=’Excel 12.0 Xml;HDR=YES’;”);
Nesta conexão, usamos o provider Microsoft.ACE.OLEDB e indicamos o nome da planilha, bem como a versão do Excel.
Criaremos agora um Adapter para executar o comando Select, e também um DataSet para armazenar os dados da consulta:
OleDbDataAdapter adapter =
new OleDbDataAdapter(
“select * from [Sheet1$]“, conexao);
DataSet ds =
new DataSet();
Observem que o nome da planilha tem um símbolo ‘$’ ao final e está entre colchetes ‘[]’.
Agora vamos abrir a conexão, preencher o DataSet e exibir os dados da planilha. Para mostrar os dados você pode criar um grid.
try
{
conexao.Open();
adapter.Fill(ds);
grid.DataSource = ds;
}
catch (Exception ex)
{
Console.WriteLine(“Erro ao acessar os dados: “ + ex.Message);
}
finally
{
conexao.Close();
}
Vale a pena ressaltar que para montar a sua conexão, vai depender da versão do Excel e da extensão. Para mais informações entre nesse site: http://www.connectionstrings.com/excel-2007
É isso! Simples assim! Abraços!
Tive que ajudar um colega meu a fazer uma conexão e ele me sugeriu que colocasse aqui para ajudar as pessoas que ainda não sabem.
Então vou ser bem prático nesse post.
Crie sua String de Conexão e copie para dentro do arquivo app.config
Feito isso, no seu código você irá chamar assim:
Prontinho. Para os iniciantes está bom!
Bom pessoal,
Estava fazendo algumas pesquisas sobre o assunto para ver qual seria a forma mais prática para resolver o meu problema: preciso preencher campos em branco que tenho em um template de documento word.
O resuldado: ninguém melhor pra mexer com Microsoft do que a próxima Microsoft. Sendo assim, vou utilizar para exemplificar o Word 2010 e o Visual Studio 2010.
Vamos lá!
Primeiramente abra o Visual Studio e cria um projeto:
Agora vamos fazer um procedimento que vai verificar se a referência Microsoft Office foi feita. Clique com o botão direito do mouse em cima do seu projeto Add Reference => .Net => e clique duas vezes em Microsoft.Office.Interop.Word. Verifique se a referente foi importada para o pacote References da sua aplicação.
Feito isso, cria uma classe no seu projeto chamada PreencherWord e cole o código abaixo:
A sua classe do formulário principal deverá ficar assim:
O nosso código que vai preencher os campos está pronto! Agora vamos configurar o Word.
Clique em qualquer lugar da Barra de Ferramentas e selecione Personalizar a Faixa de Opções... conforme figura abaixo:
Marque o CheckBox Desenvolvedor e clique em OK.
Na aba Desenvolvedor da Barra de Ferramentas, teremos os seguintes controles:
Selecione esse que está marcado na figura acima e arraste para onde achar melhor dentro do documento. Clique duas vezes em cima e aparecerá essa tela:
Coloque o text default como "prmCor" e clique em OK. Faça esse procedimento novamente acrescentando o outro campo chamado "prmModelo".
Pronto! Rode a aplicação e o texto padrão que você colocou como "prmCor", será alterado para "azul" e o que você como "prmModelo" será subtituído para "Pajero".
By Rafael Rodrigues
Não podemos atribuir valores NULL a variáveis, e isso as vezes deixa programadores que estão iniciando intrigados. Para isso, temos que declará-las como Nullable. Sendo assim, vou fazer de duas formas, a primeira um pouquinho mais teórica e a segunda é a mais fácil.
Se fosse um variável do tipo inteiro, teríamos:
Nullable<int> nome_varival = null;
Agora simplificando...
int? nome_varival;
Com certeza é bem mais fácil a segunda forma. Isso é feito pra variáveis do tipo double, int, DateTime e etc...
Fui...