Origem do Excel
A origem do Excel extrai dados de planilhas ou intervalos em pastas de trabalho do Microsoft Excel.
A origem do Excel fornece quatro modos de acesso a dados diferentes para extrair dados:
Uma tabela ou exibição.
Uma tabela ou exibição especificada em uma variável.
Os resultados de uma instrução SQL. A consulta pode ser uma consulta parametrizada.
Os resultados de uma instrução SQL armazenados em uma variável.
Importante |
---|
No Excel, uma planilha de trabalho ou intervalo é equivalente a uma tabela ou exibição. A lista de tabelas disponíveis nos Editores de Origem e Destino do Excel exibe planilhas de trabalho existentes (identificadas pelo sinal $ anexado ao nome da planilha, por exemplo, Planilha1$) e os intervalos nomeados (identificados pela ausência desse sinal $, como Meu Intervalo). Para obter mais informações, consulte a seção de Considerações de uso. |
A origem do Excel usa um gerenciador de conexões do Excel para se conectar a uma fonte de dados e o gerenciador de conexões especifica o arquivo da planilha de trabalho a ser usado. Para obter mais informações, consulte Gerenciador de conexões do Excel.
A origem do Excel tem uma saída comum e uma saída de erro.
Considerações de uso
O gerenciador de conexões do Excel usa o provedor Microsoft OLE DB para Jet 4.0 e driver de método de acesso sequencial indexado (ISAM) do Excel para se conectar; e lê e grava dados nas fontes de dados do Excel.
Muitos artigos da Base de Dados de Conhecimento da Microsoft documentam o comportamento desse provedor e driver e, embora esses artigos não sejam específicos do Integration Services ou de seus serviços de transformação de dados anteriores, talvez você queira obter mais informações sobre determinados comportamentos que podem levar a resultados inesperados. Para obter informações gerais sobre o uso e comportamento do driver do Excel, consulte Como usar ADO com dados do Excel do Visual Basic ou do VBA.
Os seguintes comportamentos do provedor Jet com o driver do Excel podem levar a resultados inesperados ao ler dados de uma fonte de dados do Excel.
Fontes de dados. A fonte de dados em uma pasta de trabalho do Excel pode ser uma planilha de trabalho, à qual o sinal $ deve ser anexado (por exemplo, Planilha1$), ou um intervalo nomeado (por exemplo, MeuIntervalo). Em uma instrução SQL, o nome de uma planilha de trabalho deve ser delimitado (por exemplo, [Planilha1$]) para evitar um erro de sintaxe causado pelo sinal $. O Construtor de Consultas adiciona automaticamente esses delimitadores. Quando você especifica uma planilha de trabalho ou um intervalo, o driver lê o bloco contínuo de células começando com a primeira célula não vazia no canto superior esquerdo da planilha de trabalho ou do intervalo. Dessa forma, você não pode ter linhas vazias nos dados de origem ou uma linha vazia entre o título ou as linhas de cabeçalho e de dados.
Valores ausentes. O driver do Excel lê um determinado número de linhas (por padrão, 8 linhas) na fonte especificada para determinar o tipo de dados de cada coluna. Quando uma coluna parece conter tipos de dados mistos, especialmente dados numéricos combinados com dados de texto, o driver decide em favor do tipo de dados majoritário e retorna valores nulos para as células que contêm dados de outro tipo. (Em uma ligação, o tipo numérico vence.) A maioria das opções de formatação de células na planilha de trabalho do Excel não parece afetar a determinação desse tipo de dados. Você pode modificar esse comportamento de driver do Excel especificando Modo de Importação. Para especificar Modo de Importação, adicione IMEX=1 ao valor de Propriedades Estendidas na cadeia de conexão do gerenciador de conexões do Excel na janela Propriedades. Para obter mais informações, consulte PRB: valores do Excel retornados como NULOS usando DAO OpenRecordset.
Texto truncado. Quando o driver determina que uma coluna do Excel contém dados de texto, ele seleciona o tipo de dados (cadeia ou memorando) com base no valor mais longo que ele obtém. Se o driver não descobre nenhum valor maior que 255 caracteres nas linhas que ele verifica, ele trata a coluna como uma coluna de cadeia de 255 caracteres, não como uma coluna de memorando. Assim, valores com mais de 255 caracteres podem estar truncados. Para importar dados de uma coluna de memorando sem que haja truncamento, você deve certificar-se de que essa coluna, em pelo menos uma das linhas de amostra, contenha um valor com mais 255 caracteres ou deve aumentar o número de linhas de amostra pelo driver para incluir esse tipo de linha. Você pode aumentar o número de linhas de amostra elevando o valor de TypeGuessRows na chave de Registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel. Para obter mais informações, consulte PRB: a transferência de dados da fonte Jet 4.0 OLEDB falha com erro.
Tipos de dados. O driver do Excel reconhece apenas um conjunto limitado de tipos de dados. Por exemplo, todas as colunas numéricas são interpretadas como duplas (DT_R8) e todas as colunas de cadeia de caracteres (que não sejam colunas de memorando) são interpretadas como cadeias Unicode de 255 caracteres (DT_WSTR). O Integration Services mapeia os tipos de dados do Excel da seguinte forma:
Numérico – flutuante de precisão dupla (DT_R8)
Moeda – moeda (DT_CY)
Booleano - booleano (DT_BOOL)
Data/hora – datetime (DT_DATE)
Cadeia – cadeia Unicode, 255 de comprimento (DT_WSTR)
Memorando – fluxo de texto Unicode (DT_NTEXT)
Conversões de comprimento e tipo de dados. O Integration Services não converte tipos de dados implicitamente. Como resultado, você pode precisar usar as transformações Coluna Derivada ou Conversão de Dados para converter explicitamente dados do Excel antes de carregá-los em um destino que não seja Excel ou para converter dados que não sejam do Excel antes de carregá-los em um destino Excel. Nesse caso, pode ser útil criar o pacote inicial usando o Assistente de Importação e Exportação, que configura as conversões necessárias. Alguns exemplos de conversões que podem ser necessárias incluem:
Conversão entre colunas de cadeias Unicode e não Unicode do Excel com páginas de código específicas
Conversão entre colunas de cadeias de 255 caracteres e de comprimentos diferentes do Excel
Conversão entre colunas numéricas de precisão dupla e de outros tipos do Excel
Configurando a origem do Excel
Você pode definir propriedades com o Designer SSIS ou programaticamente.
Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor de Origem do Excel clique em um dos seguintes tópicos:
A caixa de diálogo Editor Avançado reflete todas as propriedades que podem ser definidas programaticamente. Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor Avançado ou programaticamente, clique em um dos seguintes tópicos:
Para obter mais informações sobre como definir as propriedades, clique em um dos seguintes tópicos:
Como mapear parâmetros de consulta para variáveis em um componente de fluxo de dados
Como definir as propriedades de um componente de fluxo de dados
Como classificar dados para as Transformações Mesclar e Junção de Mesclagem
Para obter informações sobre loops em um grupo de arquivos do Excel, consulte Como fazer loop por meio de arquivos e tabelas do Excel usando um contêiner Loop Foreach.
Recursos externos
Entrada de blog, Importando dados do Excel de 64 bits no SSIS, em hrvoje.piasevoli.com
Entrada de blog, Excel no Integration Services, Parte 1 de 3: conexões e componentes, em dougbert.com
Entrada de blog, Excel no Integration Services, Parte 2 de 3: tabelas e tipos de dados, em dougbert.com.
Entrada de blog, Excel no Integration Services, Parte 3 de 3: problemas e alternativas, on dougbert.com.
Entrada de blog, Usando arquivos XLSX no SSIS, no site sqlservergeeks.com.
|
Consulte também