Array
(
)

Confrontar base de dados com planilha Excel

Pjava
   - 02 ago 2012

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.

Joel Rodrigues
   - 02 ago 2012

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.

Pjava
   - 02 ago 2012

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#.

Pjava
   - 02 ago 2012

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: {0} , linha[Contrato].ToString());
MessageBox.Show(linha[Contrato].ToString());
}

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

}