Inquiridor
Confrontar base com planilha excel

Pergunta
-
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.
Todas as Respostas
-
Tem como ler um arquivo excel pelo Sql Server. Após ler o arquivo você pode verificar se tal coluna na tabela do banco de dados contém (função CONTAINS no SQL Server) tal linha do seu arquivo Excel. Uma procedure para fazer isso tudo ficaria melhor.
Esse foi apenas o método que eu tentaria utilizar pois, obviamente, há várias soluções para esse seu problema, mas particularmente eu optaria por esse que lhe passo.
Se a sugestão resolver o problema, favor marcar como Resposta.
- Editado Lucas_Santos quinta-feira, 2 de agosto de 2012 15:15
-
-
-
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#?
-
Esqueci de postar o código que fiz para ler a planilha. Pode ser útil para outros.
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
{
}