Ir para o conteúdo
  • Cursos
  • Sobre
  • Conteúdo
  • Eventos
  • Contato
Menu
  • Cursos
  • Sobre
  • Conteúdo
  • Eventos
  • Contato
pedir orçamento
BLOG

Office Script – Array para manipular múltiplas células

Imagem como o texto em destaque sobre o Office Script</a >

 

Olá, seguidor e seguidora do blog! 

Em mais um artigo sobre o Office Script, vamos aprender como selecionar
múltiplas células de uma planilha no Excel Online utilizando uma variável do
tipo Array.</span >
 
Se você não viu ainda o artigo anterior, deixo
aqui o link</a >
para você acessá-lo e saber um pouco mais o que é um array!</span >
 
No ambiente web, métodos tradicionais de análise do conteúdo das células
podem ser muito lentos ou simplesmente impossíveis de serem executados, por
isso devemos aprender a trabalhar com o que o ambiente nos oferece.</span >
 
No Office Script, é possível utilizar um array Multidimensional para
manipular faixas de células, desde a sua associação com o array, quando à
colocação desses dados de volta na planilha. Rotinas inteiras podem ser
escritas para fazer análise em arrays (e uma rotina dessas será tema do
próximo artigo).</span >
 
Vamos ao exemplo que está no vídeo 21 (link</a >) da playlist de Office Script no Youtube (link</a >).</span >
 
Nossa estrutura dos dados
 
Cópia da Tela do Excel Online mostrando dados na coluna A e B que serão manipulados

Na Planilha2 há 6.529 linhas com nomes e sobrenomes e o objetivo é
exportar todos esses dados para a Planilha1. O botão que você vê ao lado dos
dados foi inserido a partir do código pronto… </span >

 
O código completo e em negrito a parte principal do código:</span >
 
    let</span > w1 = workbook.getWorksheet(‘Planilha1′</span >);</span >
    let</span > w2 = workbook.getWorksheet(‘Planilha2′</span >);</span >
    let</span > i:number;</span >
    let</span > ln:number = 0</span >;</span >
    let</span > col:number = 0</span >;</span >
    let</span > ultCel = w2.getCell(w2.getRange().getRowCount() – 1</span >, 0).getRangeEdge(ExcelScript</span >.KeyboardDirection</span >.up).getRowIndex() + 1</span >;</span >

 

    w1.getRange(“A:B”</span >).getEntireColumn().delete</span >
    w1.getCell(ln, col).select()</span >

 

    let</span > rows: (string</span > | boolean</span > | number</span >)[][] = []</b >
    rows = w2.getRange(“A1:B”</span > + ultCel).getValues()</b ></span >
    const</span > range = w1.getCell(ln,col).getResizedRange(rows.length-1</span >,rows[0].length-1</span >)</b >
    </b >range.setValues(rows)

</span >

No trecho </span >let rows: (string</span > | boolean</span > | number</span >)[][] = []</b > estamos criando uma variável multidimensional do tipo array. Esta
é a sintaxe para fazer a declaração…</span >

O que mais chama a atenção neste caso é o conteúdo entre os parênteses.
Literalmente estamos orientando o Office Script que nosso array pode
receber valores dos tipos string (texto), boolean (lógico) e number
(números). Assim, nosso type annotation não tem apenas um tipo único de
dados, mas sim uma variedade. </span >
Se você quiser que ele armazene apenas textos e números, poderia mudar
o interior da declaração nos parênteses para (string | number) que
funcionaria!</span >
 
O trecho </span >rows = w2.getRange(“A1:B”</span > + ultCel).getValues()</b >
atribui a variável rows o conteúdo das células A1 até B6529.
Não importa se são poucas linhas e colunas ou muitas que a atribuição
será feita de uma única vez. A variável ultCel foi declarada
no início do código e representa a última linha com dados da
Planilha2.</span >
 
const</span > range = w1.getCell(ln,col).getResizedRange(rows.length-1</span >,rows[0].length-1</span >)</b >
 
Este trecho cria uma variável do tipo const (constante) e dimensiona a
faixa de células da Planilha1 (w1) que receberá os dados. A
região de destino deve ser exatamente igual (em tamanho). Se não forem,
você receberá um erro em tempo de execução.</span >
 
range.setValues(rows)</b >Por fim, este trecho faz a gravação (setValues) dos valores
(rows) na faixa definida na constante range.</b >

Não é complicado entender o processo e, em meu curso do
Office Scripts em meu portal, há muito material complementar de como
você pode trabalhar com arrays. Há dezenas de métodos diferentes que
fazem com que seu código, rode muito mais eficientemente.

 

Utilize o cupom: ARTIGOTROVATO e ganhe um desconto de 30% no
valor do curso. Esse cupom deve ser utilizado na hora do pagamento e é
exclusivo para você que leu o artigo e acompanha meus trabalhos por
aqui. </span >
 
Você não vai ver a divulgação deste cupom em lugar nenhum mais.</span >
 
Clique aqui</a >
para adquirir o curso com 30% de desconto.</span >
 
Agora é sua vez</b >… Pratique um pouco e escreva o código deste artigo (Não vale copiar e colar!). </i ></span >

Que assunto gostaria que eu escrevesse no próximo artigo? </b >
Deixe sua sugestão nos comentários!
 

✔ Para acesso ao conteúdo programático do curso clique aqui</a >.Imagem com uma representação do Office Script</a >

Convido você a ler outros artigos que já escrevi sobre
o Office Script:

Office Script | TypeScript – Método reduce para array
(dica)</a >
Office Script | TypeScript – Método reduceRight para array</a >
Office Script | Que tal estudar esta tecnologia agora?</a >
Office Script | Estrutura de decisão IF … ELSE IF … ELSE
…</a > – Artigo 1</span >
Office Script | Estrutura de decisão IF … ELSE IF … ELSE
…</a > – Artigo 2
Office Script | Estrutura de decisão SWITCH … CASE</a > – Artigo 1</span >
Office Script | Estrutura de decisão SWITCH … CASE</a > – Artigo 2</span >
Office Script | Type Annotation – Declaração de variáveis</a >
Office Script | Como ativá-lo em sua organização</a >
Office Script | Como compartilhar seu script com outras
pessoas</a ></span >
Office Script | Gravador de Ações – Problema e Solução:
Classificação Horizontal</a ></span >
Office Script | Classificação vertical dos dados</a ></span >
Office Script | Estrutura de Repetição FOR</a >

</span >

Office Script | Dois métodos diferentes de fazer o mapeamento de
células</a > </span >
Office Script | Está na hora de começar a aprender a trabalhar
com arrays</a > </span ><novo></span >

Até o próximo artigo!
Alessandro
Trovato
Compartilhando conhecimento, sempre!</span >

#typescript #officescript #excelonline
#excelscript #trovato #mvp #mvpbr #cursostrovato #if #elseif
#excelonlinescript

 

</span > </span >
</span >

Mais vendidos Amazon</a >

 

 

Contato

Telefone:

+55 11 98861.4882

E-mail:

contato@alessandrotrovato.com.br

Siga-nos

Facebook Instagram Linkedin Twitter Youtube

© Copyright 2024 – Todos os direitos reservados | Alessandro Trovato

criado por: