Confrontar base de dados com planilha Excel

02/08/2012

0

Preciso fazer um programa que leia uma planilha e pesquise no BD se esse numero existe ou não. Bem, há uma questão específica aí. Na base de dados, esse campo tem 20 digitos e na planilha pode ter, 7 ou 8 ou 9 ou 10 dígitos, ou seja, na planilha foram ignorados os zeros à esquerda. Alguém tem alguma idéia de como usar isso no C# e MySql 5.1? Eu preciso é de apenas idéia. Observe que eu não estou pedindo código pronto, apenas uma idéia de como fazer, porque tenho dúvidas de fazer isso devido ao Excel. Se fosse possível via script, seria ideal, mas a questão é que não temos um padrão de pesquisa, tipo apartir do dígito tal e etc... Qualquer idéia é bem vinda. Obrigado.
Pjava

Pjava

Responder

Posts

02/08/2012

Joel Rodrigues

Cara, você já sabe ler os dados do banco, certo? Já sabe ler a planilha?
Enfim, para colocar os zeros à esquerda, você pode usar o ToString(´´000000000´´) com a quantidade de dígitos que desejar.
Responder

02/08/2012

Pjava

Não é colocar os zeros. A pesquisa, sem problemas, é com o sql. O que eu tenho dúvida é importar, por exemplo, os valores de uma coluna Excel, dentro de um loop para ir comparando com o BD. Meu problema é só excel e c#.
Responder

02/08/2012

Pjava

Consegui abrir a planilha e ler o conteudo que me interessa. Agora, entendendo o cliente, ele quer o seguinte. Eu abro essa planilha que tem 8 colunas, mas apenas tres vem preenchida. Ai, em uma das colunas chamada Contrato, eu comparo em meu banco de dados. Caso haja no banco, o contrato em questão, aí eu pego os demais campos e preencho na planilha, naquela posição, pois na planilha eles estarão vazios. A questão é, como eu faço isso? Fiz um método que lesse a planilha e esse método ele já abriu a planilha, então, não haverá problemas para preencher as colunas com a planilha aberta? Será? E como eu preencho uma coluna no Excel pelo C#?

Se alguém precisar, abaixo o código que usei para ler a planilha:

string Erro = ;

OleDbConnection conecta = new OleDbConnection(@Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\CLS Documentos\Base Itau.xls;Extended Properties=Excel 12.0 Xml;HDR=YES;);

OleDbDataAdapter adapter = new OleDbDataAdapter(select * from [Plan2$], conecta);
DataSet ds = new DataSet();

try
{
adapter.Fill(ds);

foreach (DataRow linha in ds.Tables[0].Rows)
{
//Console.WriteLine(Contrato: , linha[Contrato].ToString());
MessageBox.Show(linha[Contrato].ToString());
}

}
catch (Exception ex)
{
Erro = ex.Message;
}
finally
{

}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar