Bảng tính (Excel) - Speadsheets
Đọc hoặc ghi dữ liệu bảng tính Excels
File
Chọn đường dẫn file excel trong máy tính
Phạm vi
Phạm vi giá trị của các ô mà bạn muốn lấy, cập nhật hoặc xoá. Bạn có thể xác định phạm vi ô bằng cách sử dụng Kí hiệu A1 like Sheet1!A1:B2
hoặc A1:B2
hoặc A1
(viết ngắn gọn của A1:A1
)
Lấy giá trị ô bảng tính
Lấy giá trị các ô của bảng tính của 1 file excel
Khoá Tham chiếu
Dùng để định danh dữ liệu đọc được. Tham chiếu từ các khối sử dụng như Lặp dữ liệu, Xuất dữ liệu, ...Sử dụng hàng đầu tiên làm từ khoá
Sử dụng hàng đầu tiên của bảng tính làm khoá đối tượng. Ví dụ khi bạn có một bảng tính như thế này.
name | age |
---|---|
foo | 22 |
bar | 23 |
// Khi tắt
[["name", "age"], ["foo", 22], ["bar", 23]]
// Khi bật
[{ "name": "foo", "age": 22 }, { "name": "bar", "age": 23 }]
// Khi tắt
[["name", "age"], ["foo", 22], ["bar", 23]]
// Khi bật
[{ "name": "foo", "age": 22 }, { "name": "bar", "age": 23 }]
Tên cột dùng làm khoá chính
Trong trường hợp bạn muốn dùng chính xác dữ liệu với profile đang chạy thì bạn chọn lựa chọn này
Ví dụ khi bạn có một bảng tính như thế này.
profileId name age 2 foo 22 3 bar 23
Bạn muốn khi chạy profile có id là 2 thì sẽ dùng giá trị là foo
thì bạn dùng lựa chọn này, khi đó bạn có thể lấy ra giá trị foo
bằng biểu thức {{spreadSheets.referenceKey.[profileId].name}}
, khi đó khi chạy profile có id là 2 sẽ lấy ra giá trị foo
, profile có id là 3 sẽ lấy ra giá trị bar
Giá trị là dạng mảng: Trong trường hợp bạn muốn dùng nhiều dữ liệu ở cùng một profile, bạn có thể chọn lựa chọn này. Khi đó biểu thức lấy dữ liệu cần phải thay đổi.
Ví dụ khi bạn có một bảng tính như thế này.
profileId name age 15889 foo 22 15889 bar 23 12132 dan 24
Thông thường nếu bạn không chọn lựa chọn Giá trị là dạng mảng
thì để lấy được giá trị cột name
ở profileId 15889
khi chạy kịch bản ở thì bạn dùng biểu thức {{spreadSheets.referenceKey.[profileId].name}}
để lấy giá trị có dạng
{
"12132": {
"profileId": 12132,
"name": "dan",
"age": 24
},
"15889": {
"profileId": 15889,
"name": "bar",
"age": 23
}
}
{
"12132": {
"profileId": 12132,
"name": "dan",
"age": 24
},
"15889": {
"profileId": 15889,
"name": "bar",
"age": 23
}
}
Nhưng khi bạn muốn dùng nhiều hàng dữ liệu cùng chung một profile thì bạn cần chọn lựa chọn Giá trị là dạng mảng
. Khi đó dữ liệu sẽ có dạng
{
"12132": [
{
"profileId": 12132,
"name": "dan",
"age": 24
}
],
"15889": [
{
"profileId": 15889,
"name": "foo",
"age": 22
},
{
"profileId": 15889,
"name": "bar",
"age": 23
}
]
}
{
"12132": [
{
"profileId": 12132,
"name": "dan",
"age": 24
}
],
"15889": [
{
"profileId": 15889,
"name": "foo",
"age": 22
},
{
"profileId": 15889,
"name": "bar",
"age": 23
}
]
}
Ở đây sẽ có thêm một dữ liệu của profileId 15889
thay vì 1 hàng dữ liệu khi không chọn Giá trị là dạng mảng
. Để lấy được dữ liệu các bạn cần thay biểu thức {{spreadSheets.referenceKey.[profileId].name}}
thành {{spreadSheets.referenceKey.[profileId].0.name}}
nếu muốn lấy dữ liệu đầu tiên, nếu muốn lấy dữ liệu thứ 2 thay giá trị 0
thành 1
Cập nhập giá trị ô bảng tính
Dữ liệu từ
Nguồn dữ liệu để cập nhật bảng tính, mặc định là bảng. Dữ liệu trong phạm vi sẽ được ghi đè. Số ô được ghi đè phụ thuộc vào nguồn dữ liệu.
- Bảng: lấy dữ liệu đã được chèn vào bảng
- Ghi key vào hàng đầu: Sử dụng các cột làm hàng đầu tiên trên bảng tính.
- Giá trị cụ thể: Dữ liệu được nhập sẽ được ghi vào ô đầu tiên trong phạm vi đã chọn. Giá trị dữ liệu có thể là số, chuỗi, boolean
- Tuỳ chỉnh: dữ liệu được nhập phải là một mảng thuộc kiểu dữ liệu mảng với cú pháp JSON hợp lệ.
[["1","2","3"]]
[["1","2","3"]]
Chú ý
Cần phải tắt file đi (nếu file đang được mở.. vd bởi Excel Windows, ...) khi chạy để tránh bị lỗi
Chèn hoặc thêm các giá trị ô bảng tính
Dữ liệu từ
Nguồn dữ liệu để cập nhật bảng tính, mặc định là bảng Chức năng này sẽ tìm hàng khả dụng chưa có dữ liệu trong phạm vi đã chọn và thêm mới các hàng tại vị trí đó các hàng liền sau sẽ đươc dịch chuyển xuống dưới. Số hàng cột được thêm sẽ phụ thuộc vào dữ liệu nguồn
- Bảng: lấy dữ liệu đã được chèn vào bảng
- Ghi key vào hàng đầu: Sử dụng các cột làm hàng đầu tiên trên bảng tính.
- Giá trị cụ thể: Dữ liệu được nhập sẽ được thêm mới vào ô đầu tiên khả dụng trong phạm vi đã chọn. Giá trị dữ liệu có thể là số, chuỗi, boolean
- Tuỳ chỉnh: dữ liệu được nhập phải là một mảng thuộc kiểu dữ liệu mảng với cú pháp JSON hợp lệ.
// Thêm 1 dòng mới có 3 ô với 3 giá trị tươn ứng
[["1","2","3"]]
// Thêm 3 dòng mới, mỗi có 3 ô với 3 giá trị tươn ứng (1, 2, 3) và hàng thứ 2 (4, 5, 6)
[["1","2","3"], ["4", "5", "6"]]
// Thêm 1 dòng mới có 3 ô với 3 giá trị tươn ứng
[["1","2","3"]]
// Thêm 3 dòng mới, mỗi có 3 ô với 3 giá trị tươn ứng (1, 2, 3) và hàng thứ 2 (4, 5, 6)
[["1","2","3"], ["4", "5", "6"]]
Chú ý
Cần phải tắt file đi (nếu file đang được mở.. vd bởi Excel Windows, ...) khi chạy để tránh bị lỗi
Xoá giá trị ô bảng tính
Xoá giá trị của bảng tính theo phạm vi đã chọn
Chú ý
Cần phải tắt file đi (nếu file đang được mở.. vd bởi Excel Windows, ...) khi chạy để tránh bị lỗi
Truy cập dữ liệu trang tính
Để truy cập các giá trị bảng tính từ đầu vào của node, bạn có thể sử dụng các biểu thức như cú pháp {{ spreadSheets.referenceKey.path }}
.
- Ví dụ trường hợp lấy dữ liệu từ node Google Sheet với khoá tham chiếu là
data
và dữ liệu trong google sheet như bảng sau
name | age |
---|---|
An | 18 |
Manh | 23 |
Để lấy giá trị name
của hàng đầu tiên chúng ta dùng cú pháp {{spreadSheets.data.0.name}}
Đọc thêm : Biểu thức
Sử dụng trong trường hợp thực tế
Bài toán: Mình có 1 danh sách tài khoản mật khẩu, cần kiểm tra xem có đăng nhập được hay không. Các node sau sẽ tiến hành đọc lần lượt từng hàng, tiến hành logic kiểm tra tài khoản, rồi ghi trạng thái dòng ô trạng thái tương ứng
username | password | trạng thái |
---|---|---|
user001 | pass001 | |
user002 | pass002 |
Ở đây chúng ta có 5 khối chính:
1 khối đọc dữ liệu excel (khối đầu tiên sau khối bắt đầu): Khối này chịu trách nhiệm đọc dữ liệu profile (xem phần dưới)
Khối chèn dữ liệu và khối HttpRequest, ở đây là logic chính của các bạn. Ở ví dụ thì mình đang lấy thông tin trên 1 hàng đọc được từ file excel, gán vào biến để sử dụng. Khối HttpRequest sẽ là khối kiếm ra xem thông tin username, password có hợp lệ hay không
Hai khối ghi dữ liệu: Tuỳ thuộc vào kết quả, thì sẽ chạy vào khối tương ứng để cập nhật dữ liệu (xem phần dưới)
Lấy dữ liệu từ file và gán vào biến "data", các bạn lưu ý tích vào ô chọn key nhé. Khoá tham chiếu: Ở đây là "data", thì khi sử dụng, chúng mình sẽ sử dụng trong biểu thức, mình sẽ dùng cú pháp {{spreadSheets.data.path}}.
Các bạn chú ý,
"D" ở đây là cột của ô trạng thái mình muốn ghi vào
{{$increment([runIndex], 2)}}: Đây là biểu thức tính toán, khi chạy nó sẽ tính toán ra kết quả, "runIndex" là thứ tự của profile đang chạy trong lần chạy đó, $increment là 1 hàm để công thêm 2 đơn vị.
Kết quả ở đây sẽ là : D2, D3, ... phụ thuộc vào lần chạy
Và mình muốn cập nhật ô D2, (hoặc D3) thành "OK" nên mình điền "OK" ở ô giá trị sau khi chọn giá trị cụ thể