Erro ao ler dado do excel

07/01/2013

0

Olá amigos, boa tarde.

Gostaria que alguém pudesse em ajudar em um problema. Tenho uma aplicação que lê uma coluna em um arquivo excel. Essa coluna contém vários cpf''s. Minha aplicação consegue ler quase todos os cpf''s. O problema é que tem certos cpf''s que minha aplicação não consegue ler. Usando o break point, notei que ao invés de ler o próximo cpf, minha aplicação traz sempre o valor "" (vazio) da célula lida do excel. Outra coisa que também notei, é que isso so acontece com os cpf''s que não vem com formato. Os que vem no formato xxxxxxxxx-xx, o cpf é lido normalmente. Mas quando o cpf vem no formato xxx.xxx.xxx-xx ou xxxxxxxxxxx ou xxx.xxx.xxx/xx, o cpf não é lido. Não tenho noção do que possa ser, mas é estranho uma vez que a aplicação deveria ler somente o valor da coluna, sem se preocupar com a formatação do cpf.

É isso amigos, quem puder ajudar, desde já agradeço.

Abs!!
Diego Gonçalves

Diego Gonçalves

Responder

Posts

07/01/2013

Robson Alves

Eu acho que o caso das formatações foi coincidência.

você tem certeza que não está lendo as colunas erradas?
Tipo estar lendo a coluna 0 e depois incrementar para a coluna 1...

Posta o seu código!
Abraços.
Responder

07/01/2013

Diego Gonçalves

O código é esse:

String strConn = "";
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + caminhoArqXls + ";Extended Properties=Excel 12.0;";

OleDbConnection objConn = new OleDbConnection(strConn);
// Abre a conexão com o OleDb
objConn.Open();


OleDbCommand objCmdSelect = new OleDbCommand(String.Format("SELECT * FROM []", this.getNomePlanilha(objConn)), objConn);

// Cria o Adapter
OleDbDataAdapter objAdapter = new OleDbDataAdapter();

// Passa o SELECT para o adapter
objAdapter.SelectCommand = objCmdSelect;

// Cria o DataSet que irá receber os dados
//DataSet objDataset = new DataSet();

DataTable dt = new DataTable();

// Passa os dados para o DataSet
objAdapter.Fill(dt);

//int cont = 0;
string cpf = string.Empty;
string valor = string.Empty;
StringBuilder dados = new StringBuilder();

DataTable funcionarios = new DataTable();
foreach (DataRow DR in dt.Rows)
{
cpf = DR[0].ToString().Trim().Replace(".", "").Replace("-", "").Replace("/", "");
valor = DR[1].ToString().Trim().Replace("R", "").Replace("$", "");

if (!cpf.Equals(string.Empty))
{
dados.Append(cpf);
dados.Append("(");
dados.Append(valor);
dados.Append(")");
dados.Append(";");
}
}
Responder

07/01/2013

Robson Alves

Ta tudo certo... o nome da planilha está certo tmb né?

:/ estranho cara...
Responder

07/01/2013

Diego Gonçalves

sim, sim, ta tudo certinho. O mais estranho realmente é que a aplicação não está conseguindo ler o valor de uma determinada célula. As outras, a aplicação lê normalmente. Desconfio da formatação da planilha e da célula...

estranão...
Responder

07/01/2013

Robson Alves

Passa toda a celula PDF pra o tipo texto...
Mas nunca vi isso acontecer!...
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