> For the complete documentation index, see [llms.txt](https://docs.roboteasy.tech/studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboteasy.tech/studio/utilitarios/exemplos/manipulando-arquivos-csv.md).

# Manipulando Arquivos CSV

Passo a passo para desenvolvimento de um robô que lê os dados de um CSV e gera um novo arquivo.

Os objetos para manipulação de arquivos .csv são amplamente utilizados nos projetos dos nossos clientes. Por isso vamos conhecer os objetos e como utilizá-los e, ao final deste artigo, teremos um robô que: cria e preenche um .csv , faz a leitura deste  arquivo e cria um novo com os dados lidos.

#### O que você vai aprender:

* Ler, criar e preencher arquivos .csv
* Trabalhar com variáveis do tipo listas

#### Utilizaremos os objetos:

1. [Criar CSV](/studio/geral-1/objetos/csv/criar-csv.md): para criar os 2 arquivos CSV desse artigo;
2. [Escrever CSV](/studio/geral-1/objetos/csv/escrever-csv.md): para preenchermos nossas planilhas;
3. [Ler Dados CSV](/studio/geral-1/objetos/csv/ler-dados-csv.md): utilizado para ler os dados de um CSV;
4. [Varrer Dados CSV](/studio/geral-1/objetos/csv/varrer-dados-csv.md): percorrer a lista de dados capturada pelo Ler Dados CSV.

> ✍️Vamos ao passo a passo!

## PASSO 1: Criar e preencher um .csv

Nosso robô iniciará o processamento criando o arquivo .csv que nós utilizaremos nos próximos passos do projeto, para treinar a leitura e varredura de dados.

Para isso, vamos utilizar o objeto "Criar CSV" e daremos um nome e o caminho onde o arquivo será saldo na nossa máquina:

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FdXAWyOtl4NPZK2Lo5LVj%2Fimage.png?alt=media&amp;token=a7f90ce6-3997-43df-a7f7-e6a48d3f73f4" alt=""><figcaption><p>Criando um arquivo .csv</p></figcaption></figure>

Na sequência, vamos preencher o arquivo recém-criado utilizando o objeto "Escrever CSV". No nosso arquivo teremos o cabeçalho e o nome de 3 clientes, portanto teremos que utilizar o objeto 4 vezes na estrutura do nosso robô, dessa forma:

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2F23C2KyplPsQ0gOOQo9SK%2Fimage.png?alt=media&amp;token=b5518ac2-6566-4e62-9598-6792b93943cb" alt=""><figcaption><p>Estrutura de escrita no arquivo .csv</p></figcaption></figure>

{% hint style="info" %}
**DICA**

No objeto "Escrever CSV" você deverá informar qual é o delimitador do arquivo. O mais utilizado em arquivos .csv é o ";" mas você deve prestar atenção a esse detalhe. Se errar o delimitador, o robô pode acabar capturando os dados incorretamente.
{% endhint %}

&#x20;O resultado do nosso arquivo .csv após preenchido e saldo na pasta será:

![](https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FkxbhDmstWbvWScxMF10a%2Fimage.png?alt=media\&token=05c172fb-74a6-4992-b81c-0adc1d6aaa90)

## PASSO 2: Ler dados do CSV

Agora criaremos um segundo arquivo .csv contendo os dados lidos do arquivo que acabamos de criar no passo 1.

Para isso, utilizaremos novamente o objeto "Criar CSV" e criaremos o novo arquivo em branco:

<div align="left"><figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2F1RxXoJip7ENJL0Y8TlBl%2Fimage.png?alt=media&amp;token=2eae2d41-77e4-4c5a-90b6-af8b54e14659" alt=""><figcaption><p>Criando o segundo arquivo .csv em branco</p></figcaption></figure></div>

Agora faremos a varredura dos dados do .csv principal e gravaremos em uma variável do tipo lista para, na sequência, escrever esses dados na planilha secundária.

Vamos utilizar o objeto "Varrer Dados CSV" para captura dos dados (atenção ao preenchimento do delimitador):

<div align="left"><figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2Fl1l3AHET07H85thtiFGa%2Fimage.png?alt=media&amp;token=3e30f7ce-2ac1-4c12-b388-30a0a29c8a93" alt=""><figcaption><p>Utilizando o objeto Varrer Dados CSV</p></figcaption></figure></div>

Note que quando varremos o arquivo original, o cabeçalho não é importado pois marcamos a opção "Arquivo possui cabeçalho".

A cada linha que o objeto "Varrer Dados CSV" lê, nós queremos que os dados sejam escritos no novo arquivo .csv, então utilizaremos o objeto "Escrever CSV" em conjunto com o "Varrer Dados", nessa estrutura:

<figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FoDmxLNS5HCjRTLPy8QJl%2Fimage.png?alt=media&amp;token=4e02275f-3dde-429f-862e-30de30daed68" alt=""><figcaption><p>Agrupando objetos</p></figcaption></figure>

O preenchimento do objeto "Escrever CSV" terá um conteúdo dinâmico que você precisa prestar bastante atenção. Lembre-se que estamos trabalhando com uma varável do tipo lista e queremos que ela seja impressa num arquivo .csv. Um lista é como um array, então cada coluna que nós lemos do arquivo principal virou um índice no nosso array, sempre iniciando pelo índice 0. Veja como fica a utilização desse array no objeto "Escrever CSV":

<div align="left"><figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FT1J2Z45gE6mIWwMph7E7%2Fimage.png?alt=media&amp;token=63e9b48c-db7d-4be9-87bd-19dbc197110a" alt=""><figcaption><p>Preenchimento do objeto Escrever CSV</p></figcaption></figure></div>

Vamos executar?

Verifique se o seu robô está compilado com sucesso no console localizado na parte inferior da sua tela e, estando tudo ok, clique no botão ![](https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FamJwxqOefpMVE5ZN43Or%2Fimage.png?alt=media\&token=c652aa5b-7978-4f55-b550-17bda79f36f5).

<div align="left"><figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2F51d0jpnXDFqI4wyp5OVf%2Fimage.png?alt=media&amp;token=7d37c8be-b45e-44cf-89d5-27e361af41d6" alt=""><figcaption><p>Localizando o console no Studio</p></figcaption></figure></div>

Se tudo deu certo, esperamos que o robô tenha criado 2 arquivos .csv na pasta "C:/temp" com os seguintes dados:

<div align="left"><figure><img src="https://1906991432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FABFcMeFxBJhKzVOwJbRE%2Fuploads%2FjjuyltIpVrjocj8jHvrv%2FresultadoCsv.gif?alt=media&amp;token=d8d32054-82fe-45ca-bf11-ef0119eab627" alt=""><figcaption><p>Resultado da execução</p></figcaption></figure></div>

### Download do Robô

{% file src="/files/Rbgy9mGxUiaOUfF1SIKd" %}

### Conclusão

Saber manipular arquivos .csv é muito importante por serem arquivos mais leves e consumirem menos memória. Por isso as empresas costumam utilizar arquivos .csv quando possuem um volume de dados maior.

Espero que esse artigo tenha te ajudado a melhorar seus conhecimentos na ferramenta Studio da Roboteasy.

Até logo! :clap:
