Olá,
hoje apresento um artigo com informação prática de transformação de um ficheiro Excel em tabelas no SQL Server. É algo muito utilizado no mundo empresarial e será um bom guia para a sua concretização.
Para alguns profissionais, como os analistas, a obtenção de dados e seu cruzamento é essencial, permitem-lhes a criação de reports elaborados com a mais vasta informação fornecida por qualquer meio. Um desses meios é precisamente o Excel, uma das formas mais comuns de transporte de dados.
Outro meio de armazenamento e manuseamento de dados é o SQL.
Como é que poderemos interligar ambos? Como é que poderemos utilizar dados de um ficheiro em Excel, com diversos separadores (sheets), juntamente com outros dados existentes em tabelas de SQL?
A resposta à questão seria: “de muitas formas”! Mas, o propósito deste artigo é explicar a forma de importação de dados por parte do SQL – com isto serão criadas tabelas no SQL cujos dados são os mesmos fornecidos pelo ficheiro de Excel.
Avancemos, então, para a prática. Comecemos por verificar a existência do seguinte ficheiro Excel que se chama frotas.xls e que queremos utilizar para as nossas querys no SQL:
O ficheiro é composto por três separadores: abastecimentos, clientes e viaturas.
Resumindo, é uma forma de gerir a nossa frota automóvel onde se especificam as viaturas e os diversos abastecimentos para cada uma delas.
Separador Abastecimentos:
Separador Clientes:
Separador Viaturas:
É necessário colocar toda esta informação numa estrutura diferente onde já existe outro tipo de dados, ou seja, é necessária uma importação de dados.
Tomemos, então a DB “Testes”, local onde armazenaremos as novas tabelas importadas do Excel:
Deveremos selecionar a opção “Import Data” existente nas tarefas a executar no SQL. Em cima da DB Testes, clicar com o botão do lado direito do rato e depois selecionar Import Data:
Após premir “Import Data” aparecerá a janela de boas vindas do “SQL Server Import and Export wizard”:
A continuidade no processo é feita através do botão “Next”. Continuemos, portanto.
No próximo interface, selecionar em “Data Source” o “Microsoft Excel”:
e especificar, de seguida, o local onde está residente o ficheiro Excel, premindo o botão “Browse”.
Atenção à marcação do “First row has column names” pois permite colocar as colunas nas tabelas SQL a partir da primeira linha que vem especificada no Excel:
Premir Next.
De seguida, será necessário escolher o nome do servidor SQL assim como especificar a DB onde colocar as tabelas. Neste caso, a seleção vai para a DB Testes:
Premir Next.
Aparecerá uma janela onde se especificará se se copiarão dados automaticamente ou se se escreverá algum código TSQL para o efeito. Optemos pela primeira opção:
No próximo interface, devem-se escolher os separadores do ficheiro excel que queremos importar:
Como interessam os três separadores basta marcar a caixinha ao lado de “Source” e, automaticamente, todos ficarão selecionados.
Na coluna “Destination” aparecem as tabelas que serão criadas, ambos os nomes terminam em “$”, realcando a origem Excel (separador).
Ainda nesta coluna, poderemos alterar o nome ou aceder aos campos constituintes de cada uma para alteração, por exemplo, do tamanho, premindo a tabela necessária e clicando no botão “Edit Mappings”:
No interface seguinte são mostrados os campos constituintes de cada tabela, a selecionada anteriormente.
Alteremos, por exemplo, o tamanho do campo “Titulo” para 10, tamanho mais que suficiente.
Repare-se que a opção “create destination table” é a única activa uma vez as tabelas finais ainda não existirem no SQL:
Veremos adiante que poderemos utilizar este mesmo wizard para fazer updates às tabelas.
O próximo quadro mostra a possibilidade de alteração do nome das tabelas finais:
Por fim, premindo o botão Next, chegaremos ao interface que permite executar o processo.
Existe, também, a opção de salvar o processo como SSIS package (Integration Services) mas não nos interessa nesta fase. A criação de tabelas é uma fase, vou deixar a funcionalidade do SSIS package para posterior implementação:
Repare-se nas mensagens seguintes, confirmando a criação das tabelas:
e, agora, o processo a concluir com a criação e cópia dos dados para o SQL:
Poderemos verificar e comprovar no SQL a existência das tabelas e dos dados iguais aos fornecidos no ficheiro Excel:
Com isto, importamos dados de um ficheiro Excel para o ambiente SQL. Este processo cria as tabelas finais com os dados dos separadores do Excel inicial.
Mais tarde, para actualizar novo documento fornecido, poderemos fazer o update às tabelas; uma vez elas existirem o processo a executar não será o de criar as tabelas mas sim actualizar as existentes.
A actualização poderá ser como acréscimo aos registos (append) ou substituição (delete and copy). Neste caso, no final do processo, deveremos gravar o SSIS package e simplesmente utilizar o mesmo para cada actualização.
Ficará para o próximo artigo.
Espero que vos seja útil,
JG