# Spreadsheet

Node Spreadsheet helps you read data from excel files or google sheets.

Node Spreadsheet giúp bạn đọc dữ liệu từ file excel hoặc google sheet.

### Giải thích các trường của node

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FEHi5wDXodghectr6J3Gl%2Fimage.png?alt=media&#x26;token=36b8b2e3-1db6-4e8b-9320-4d35046173e0" alt=""><figcaption></figcaption></figure>

**Local file:**&#x20;

* Path to the file: Chọn file excel có sẵn trong máy của bạn.
* Range: Một nhóm các ô trong file excel. Ví dụ bạn muốn đọc dữ liệu từ ô A1 đếm ô E5, ta sẽ nhập trường Range là A1:E5. Trường range này chỉ có thể nhập chữ hoa.
* Sheet name: Tên của excel sheet. Nếu bỏ trống ô này, sẽ mặc định lấy sheet name đầu tiên.
* First row as keys: Khi tick vào checkbox này, ta sẽ coi hàng đầu tiên của excel là tên của các cột dữ liệu, khi không chọn checkbox thì các hàng đều ngang hàng nhau.
* Save to: Lưu giá trị lấy được vào biến
* Preview: Xem trước dữ liệu mà node đọc được từ file.
* Map key:&#x20;

&#x20;             **TH1: Khi chọn checkbox First row as keys, ta có bảng dữ liệu như sau:**&#x20;

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FfUPTkhzsVk8MWwubvKzZ%2Fimage.png?alt=media&#x26;token=5a9eb2b7-56da-403d-9356-098f074d2916" alt=""><figcaption></figcaption></figure>

&#x20;        Khi chọn preview sẽ hiển thị như sau:

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2F9TEZMZKe0bn9njP91nje%2Fimage.png?alt=media&#x26;token=462936db-29d8-4e59-9ef6-23e53a45a089" alt=""><figcaption></figcaption></figure>

Trường hợp này ta sẽ nhập map key:

&#x20;          \[0]\[“Email”]  : Thì kết quả sẽ lấy được giá trị email là <abc@gmail.com>

&#x20;          \[1]\[“Email”]  : Thì kết quả sẽ lấy được giá trị email là <so1@gmail.com>

Tương tự nếu muốn lấy password ra thì ta nhập map key :

&#x20;          \[0]\[“Password”]  : sẽ lấy được giá trị là a123123

&#x20;          \[1]\["Password"]  : sẽ lấy được giá trị là abcd123

&#x20;**TH2: Khi không chọn checkbox First row as keys, ta có bảng dữ liệu như sau:**&#x20;

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2Fh9WVuqV6x5smDVtoxDG6%2Fimage.png?alt=media&#x26;token=8ac9676d-eea8-4da2-9223-ba15d62b1b6d" alt=""><figcaption></figcaption></figure>

Khi click vào preview sẽ hiển thị như sau:

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FsvoFu1JeKvC8GXOHlEvg%2Fimage.png?alt=media&#x26;token=c9dc4b59-5bda-44b6-bab7-4a1aa99def4a" alt=""><figcaption></figcaption></figure>

&#x20;    Khi đó map Key ta sẽ nhập:

&#x20;                \[0]\[0]  : Sẽ lấy được giá trị là <abc@gmail.com>

&#x20;                \[0]\[1] : Sẽ lấy được giá tri là a123123

&#x20;                \[1]\[0]  : sẽ lấy được giá trị là <so1@gmail.com>

&#x20;                \[1]\[1]  : Sẽ lấy được giá trị là abcd123

### Hướng dẫn đọc từng hàng khớp với từng profile

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FeppSJgjodN4kjA3RjxnT%2Fimage.png?alt=media&#x26;token=d1039857-839e-40c2-b4bb-74b4cd05e7e6" alt=""><figcaption></figcaption></figure>

Ta có Script như sau:

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FlL5QDVRlKaOtM0sTAaQh%2Fimage.png?alt=media&#x26;token=5f8411de-57a3-46b9-8cdb-dc9a2fc159cb" alt=""><figcaption></figcaption></figure>

Với trường hợp này ta sẽ tạo một biến ${index} có giá trị là 1.&#x20;

Các node ta nhập như sau:&#x20;

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FH0pifFrx5s7B7m6hafbX%2Fimage.png?alt=media&#x26;token=45c988a5-0542-4290-82d1-75807484718e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FQ0kIglfHaqygs9Hg0Ooe%2Fimage.png?alt=media&#x26;token=4219fb4b-0129-4582-bf60-3edbd3e8319d" alt=""><figcaption></figcaption></figure>

<figure><img src="https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2Fv9xfApRy6cLzoTiAIU7a%2Fimage.png?alt=media&#x26;token=567365da-b4ef-4d09-9bc0-c4bf6ad495a9" alt=""><figcaption></figcaption></figure>

Với bảng dữ liệu như trên thì tại node for ta sẽ cho chạy 10 vòng lặp. Mỗi vòng lặp ta sẽ chạy qua từng hàng của file excel nhờ node Set variable, node làm giá trị của biến index tăng lên 1 sau mỗi vòng lặp. Khi biến này được tăng lên thì trường Range của node Spreadsheet qua mỗi vòng lặp sẽ lần lượt là A1:B1, A2:B2, A3:B3,....... Khi lặp như vậy ta sẽ sử dụng node if làm điều kiệm để so sánh Profile\_id của profile đang chạy với uuid của file excel. Nếu Profile\_id trùng với uuid của file excel thì dừng vòng lặp và ghi dữ liệu của hàng đó vào biến để sử dụng cho các node tiếp theo.

Dưới đây là một script ví dụ của node đọc file, với ví dụ này sẽ đọc lần lượt theo từng hàng và tương ứng với từng profile mà bạn chạy. Bạn phải thay dữ liệu trong cột uuid bằng uuid của các profile mà bạn muốn chạy.

{% file src="<https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FeQ78vUrimx8jO2oSsfDw%2Fexample%202.xlsx?alt=media&token=b465a375-99bb-4b08-b217-16d4edbc5d98>" %}

{% file src="<https://699023340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiEhmc20xmuwcG5ThYMWS%2Fuploads%2FqjFGdPusYe0A8uEkBp8Z%2FSpreadsheet.txt?alt=media&token=6e475e2e-3dd1-49b8-b65e-5cdc49e2327a>" %}
