Stream Excel

Conheça o componente e saiba como utilizá-lo.

Erick Rubiales avatar
Escrito por Erick Rubiales
Atualizado há mais de uma semana

IMPORTANTE: esta documentação foi descontinuada. Leia a documentação Stream Excel atualizada no nosso novo portal de documentação.

O Stream Excel lê um arquivo local de Excel linha por linha em uma estrutura JSON e dispara subpipelines para processar cada linha. Esse recurso costuma ser indicado em situações nas quais há a necessidade de processamento de arquivos grandes.

Dê uma olhada nos parâmetros de configuração do componente:

  • File Name: determina o nome do arquivo local que será lido.

  • Sheet Name: nome da planilha de Excel a ser lida.

  • Sheet Index: index da planilha de Excel a ser lida.

  • Use Sheet Index Instead Of Name: se ativada, a opção permite que o index da planilha seja informado no lugar do nome.

  • Max Fractional Digits: determina o número preciso de dígitos fracionários em uma célula numérica no momento da leitura do arquivo Excel (padrão = 10).

  • Read Specific Columns As String: indica quais colunas o componente deve ler em forma de string ao invés do seu formato original. Cada coluna desejada deve ser informada separadamente por uma vírgula (ex.: A,B,X,AA).

  • Read All Columns As String: se selecionada, a opção fará com que todas as colunas sejam lidas como string.

  • Parallel Execution Of Each Iteration: se selecionada, a opção fará com que o componente realize a leitura de linhas do arquivo em paralelo.

  • Fail On Error: a habilitação desse parâmetro suspende a execução do pipeline apenas quando há uma ocorrência grave na estrutura da iteração, impedindo a sua conclusão por completo. A ativação do parâmetro "Fail On Error" não tem ligação com erros ocorridos nos componentes utilizados para a construção dos subpipelines (onProcess e onException).

  • Advanced: quando selecionada, a opção solicita a definição de parâmetros avançados.

  • Skip: número de linhas a serem puladas antes da leitura do arquivo.

  • Limit: número máximo de linhas a serem lidas.

O Stream Excel realiza processamento em lote. Para entender melhor o conceito, clique aqui.

IMPORTANTE: o Stream Excel não é capaz de ler arquivos no formato .xls, mas apenas no formato .xlsx.

Fluxo de Mensagens

Entrada

O componente aceita qualquer mensagem de entrada, podendo utilizá-la por meio de Double Braces.

Saída

O componente retorna um JSON contendo o total de execuções, total de sucesso e total de falhas.

  • sem erro

{
"total": 5,
"success": 5,
"failed": 0
}

  • com erro

{
"total": 5,
"success": 3,
"failed": 2
}

  • Total: número total de linhas processadas

  • Success: número total de linhas processadas com sucesso

  • Failed: número total de linhas cujo processamento falhou

IMPORTANTE: para saber se uma linha foi processada corretamente, deve haver o retorno { "success": true } para cada linha processada.

O componente joga uma exceção se o arquivo não existir ou não puder ser lido. Do contrário, uma mensagem é produzida na saída com a exceção ocorrida.

A manipulação de arquivos dentro de um pipeline ocorre de forma protegida. Todos os arquivos podem ser acessados apenas por um diretório temporário, no qual cada pipeline key dá acesso ao seu próprio conjunto de arquivos.

Este componente realiza processamento em lote. Para entender melhor o conceito, clique aqui.

Stream Excel em Ação

Abaixo será demonstrado como o componente se comporta em determinada situação e a sua respectiva configuração.

Ler arquivo de Excel e analisar resultado

Para esse exemplo, vamos considerar que já possuímos um arquivo excel no fluxo do pipeline (baixado através de componentes como: Google Drive, OneDrive e assim por diante). O arquivo em questão possui uma planilha com os nomes dos 100 bilionários selecionados pela Forbes.

O componente Stream Excel será configurado da seguinte forma:

Entrada

{
"fileName": "sheets.xlsx"
}

Saída

{
"total": 102,
"success": 0,
"failed": 102
}

Resultado do log

Para visualizar esse log, será utilizada a aba de mensagens do pipeline. Conforme demonstrado na imagem abaixo, todas as linhas da planilha foram lidas individualmente pelo componente, incluindo até o nome das colunas.

Ler arquivo de Excel e analisar uma planilha inexistente no arquivo

Para esse exemplo, considere a mesma planilha analisada anteriormente. No entanto, será selecionada uma planilha que não existe.

O componente Stream Excel será configurado da seguinte forma:

Entrada

{
"fileName": "sheets.xlsx"
}

Saída

{
"success": false,
"message": "Sheet 'InvalidSheetName' does not exist",
"exception": "com.monitorjbl.xlsx.exceptions.MissingSheetException"
}

Ler arquivo de Excel inválido

Para esse exemplo, considere um arquivo inexistente no fluxo do pipeline.

O componente Stream Excel será configurado da seguinte forma:

Entrada

{}

Saída

{
"success": false,
"message": "File invalidsheets.xlsx does not exist.",
"exception": "com.digibee.pipelineengine.exception.PipelineEngineRuntimeException"
}

Respondeu à sua pergunta?