Ir para conteúdo
  • 0

Problema com a importação de arquivos em Excel para Sql


Adriano Luiz de Lacerda

Pergunta

  • Alunos

Bom dia a todos, espero que estejam bem! Gostaria de solicitar o auxílio de vocês, em uma limitação que estou tendo, no ato de salvar e importar arquivos do Excel para o Sql.

Eu extraio mensalmente do sistema, as movimentações do meu setor, onde por defaut, os arquivos em Excel, já vem nessa formatação, segue o exemplo abaixo. Como podem observar em destaque em amarelo, a "Coluna - Cod", possui tanto código somente números, como também código com letra + números. Em destaque em amarelo, toda a coluna está no formato "Texto" e no momento de importar para o Sql, não houve nenhum erro.

 

 

 

image.png.4823e2078617c7100b79ea209ba9fe29.png

No 2° exemplo logo abaixo, já é o resultado dessa importação, para o Sql. Reparem em destaque de amarelo, que o Sql trouxe tanto, os códigos no formato número, quanto no formato letra + número.

image.png.455957b23658de1e6f43e333c391dd11.png

 

Agora que vem o problema e minha limitação, onde eu resolvi converter na planilha de Excel a coluna "Cod" para o formato número, para retirar esses pontos de exclamação e com isso ao importar a planilha para o Sql, onde tinha o formato letra + número, agora traz "NULL", conforme o exemplo abaixo. Como eu posso resolver esse problema , para que mesmo eu tendo formatado na planilha de Excel, ele traga, todos os dados  da coluna, independente de serem somente números ou letras+numeros?

OBS:. Tentei modificar antes de finalizar o processo de importação para o Sql, alterar a fonte de Float para varchar e não resolveu. Estou enviando o arquivo em excel também para auxiliar.

image.png.f34e68586fdeae8e3bfd2dbf889349fb.png

Planilha1.xls

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Boa tarde @Adriano Luiz de Lacerda.
Nesse processo de importação, o Cod sempre será importado considerando o formato identificado na planilha.
Se definir número, no sql número não aceita caractere, então é nulo mesmo.

Se o problema é somente o alerta de formatação, não seria só mandar ignorar a verificação no Excel?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa Tarde Henrique, não é somente a questão do alerta e sim o fato da coluna com o caractere não trazer o código.
Eu importava tudo e não tinha esse problema, porém ao alterar no arquivo de Excel para número, agora não consigo mais alterar. Eu preciso que o resultado da coluna seja apresentado tanto para o número, quanto para o caractere + número e não trazer "null".

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Uma vez que só vai importar todos os códigos se no Excel a coluna Cod estiver marcada como texto,
minha sugestão é:
- se certificar que a coluna Cod está marcada como texto na planilha
- excluir a tabela no banco de dados, porque  Cod vai numérico
- recriar o processo de importação e substituir o processo existente quando o SQL perguntar
- processar

Deve voltar a funcionar.

 

 

Editado por Henrique Merola Faria
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa noite @Adriano Luiz de Lacerda.
É esse bendito xls atrapalhando a nossa vida.

Não sei qual a razão, mas a partir do momento que define a coluna como Número ou Geral, pode trocar para
Texto depois que o SQL continua identificando como Número. 
Com certeza é algo nas entranhas da planilha, mas não faço idéia do que seja.

Fiz diversos testes com um xls minúsculo e o resultado sempre foi esse.
A única forma de importar a coluna original com texto e número que encontrei é definir a coluna Cod como Texto
antes de importar e não mexer mais. Daí identifica os textos corretamente.

Para conseguir importar a sua planilha de exemplo corretamente, apliquei 2 passos no xls:
(excluindo a tabela anterior do banco, senão ela fixava em float)
- mudei para Cod para Texto 
- adicionei um espaço no início do código => isso força ser texto

Aí o SQL entendeu como texto e importou os dois tipos corretamente:

image.png.f71a7dd01fd29c576e477ca212b1b896.png


Então, em tese, se você fizer uma nova exportação dos dados, mudar Cod para Texto (não pode ser Geral) e importar,
deve funcionar.

Mistérios...
 

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...