Tài liệu này mô tả những điều cơ bản về cách sử dụng tài nguyên spreadsheets.values.
Bảng tính có thể có nhiều trang tính, trong đó mỗi trang tính có số lượng hàng hoặc cột bất kỳ. Ô là một vị trí tại giao điểm của một hàng và cột cụ thể, đồng thời có thể chứa một giá trị dữ liệu. API Google Trang tính cung cấp tài nguyên spreadsheets.values để cho phép đọc và ghi các giá trị.
Nếu cần chèn các hàng hoặc cập nhật định dạng và các thuộc tính khác trong một trang tính, bạn phải sử dụng phương thức batchUpdate của tài nguyên spreadsheets, như mô tả trong phần Cập nhật bảng tính.
Phương thức tài nguyên
Tài nguyên spreadsheets.values cung cấp các phương thức sau để đọc và ghi giá trị, mỗi phương thức cho một tác vụ cụ thể:
| Quyền truy cập theo dải ô | Đọc sách | Viết |
|---|---|---|
| Một dải | spreadsheets.values.get |
spreadsheets.values.update |
| Nhiều dải | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
| Nối | spreadsheets.values.append |
Nhìn chung, bạn nên kết hợp nhiều lượt đọc hoặc cập nhật bằng các phương thức batchGet và batchUpdate (tương ứng), vì điều này giúp cải thiện hiệu quả.
Bạn có thể tìm thấy mã mẫu của từng phương thức này trên các trang mẫu Đọc cơ bản và Ghi cơ bản. Để xem tất cả các mẫu mã, hãy tham khảo trang tổng quan về mẫu.
Đọc giá trị ô
Để đọc các giá trị dữ liệu từ một trang tính, bạn cần có mã nhận dạng bảng tính và ký hiệu A1 cho dải ô. Việc chỉ định dải ô mà không có mã nhận dạng trang tính (A1:B2) có nghĩa là yêu cầu sẽ thực thi trên trang tính đầu tiên trong bảng tính. Để biết thêm thông tin về mã nhận dạng bảng tính và ký hiệu A1, hãy xem bài viết Tổng quan về API Google Trang tính.
Một số tham số truy vấn không bắt buộc sẽ kiểm soát định dạng của đầu ra:
| Tham số định dạng | Giá trị mặc định |
|---|---|
majorDimension |
HÀNG |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
Xin lưu ý rằng bạn chỉ nên sử dụng dateTimeRenderOption nếu valueRenderOption không phải là FORMATTED_VALUE.
Không có giới hạn rõ ràng về lượng dữ liệu được trả về. Lỗi không trả về dữ liệu. Các hàng và cột trống ở cuối sẽ bị bỏ qua.
Các phương thức lấy đơn lẻ và theo lô được mô tả trong các phần sau. Để biết thêm các mẫu mã về các thao tác đọc cơ bản, hãy xem phần Đọc cơ bản.
Đọc giá trị từ một dải ô
Để đọc một dải ô giá trị duy nhất từ bảng tính, hãy dùng yêu cầu spreadsheets.values.get:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Phản hồi cho yêu cầu này được trả về dưới dạng một đối tượng ValueRange, là một phần của tài nguyên spreadsheets.values.
Đọc giá trị từ nhiều dải ô
Để đọc nhiều dải giá trị không liên tục từ một bảng tính, hãy sử dụng yêu cầu spreadsheets.values.batchGet. Yêu cầu này cho phép bạn chỉ định một số dải ô cần truy xuất:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Phản hồi cho yêu cầu này được trả về dưới dạng một đối tượng BatchGetValuesResponse chứa spreadsheetId và một danh sách các đối tượng ValueRange.
Ghi giá trị ô
Để ghi vào một trang tính, bạn cần có mã nhận dạng bảng tính, dải ô trong ký hiệu A1 và dữ liệu bạn muốn ghi trong một đối tượng nội dung yêu cầu thích hợp. Để biết thêm thông tin về mã nhận dạng bảng tính và ký hiệu A1, hãy xem bài viết Tổng quan về API Google Trang tính.
Một số tham số truy vấn kiểm soát cách dữ liệu được ghi và cách phản hồi được định dạng:
| Ghi tham số | Giá trị mặc định |
|---|---|
valueInputOption |
(Bắt buộc) |
includeValuesInResponse |
false |
responseValueRenderOption |
FORMATTED_VALUE |
responseDateTimeRenderOption |
SERIAL_NUMBER |
Tham số valueInputOption bắt buộc kiểm soát cách diễn giải dữ liệu đầu vào. (Đối với các bản cập nhật hàng loạt, tham số này sẽ được chỉ định trong phần nội dung yêu cầu.) Các lựa chọn được hỗ trợ được mô tả trong bảng sau:
ValueInputOption |
Mô tả |
|---|---|
RAW |
Đầu vào không được phân tích cú pháp và được chèn dưới dạng một chuỗi. Ví dụ: đầu vào "=1+2" sẽ đặt chuỗi "=1+2" chứ không phải công thức vào ô. (Các giá trị không phải là chuỗi như giá trị boolean hoặc số luôn được xử lý dưới dạng RAW.) |
USER_ENTERED |
Dữ liệu đầu vào được phân tích cú pháp chính xác như thể được nhập vào giao diện người dùng của Trang tính. Ví dụ: "1/3/2016" sẽ trở thành ngày và "=1+2" sẽ trở thành công thức. Bạn cũng có thể suy luận định dạng, vì vậy "100,15 USD" sẽ trở thành một số có định dạng tiền tệ. |
Xin lưu ý rằng bạn chỉ nên sử dụng responseDateTimeRenderOption nếu responseValueRenderOption không phải là FORMATTED_VALUE.
Các phương thức cập nhật đơn lẻ và cập nhật theo lô được mô tả trong các phần sau. Để biết thêm mã mẫu về các thao tác ghi cơ bản, hãy xem phần Ghi cơ bản.
Ghi các giá trị vào một dải ô
Để ghi dữ liệu vào một dải ô duy nhất, hãy sử dụng yêu cầu spreadsheets.values.update:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Nội dung của yêu cầu cập nhật phải là một đối tượng ValueRange, mặc dù trường bắt buộc duy nhất là values. Nếu bạn chỉ định range, thì thông số này phải khớp với phạm vi trong URL. Trong ValueRange, bạn có thể tuỳ ý chỉ định majorDimension của ValueRange.
Theo mặc định, ROWS sẽ được dùng. Nếu COLUMNS được chỉ định, mỗi mảng bên trong sẽ được ghi vào một cột thay vì một hàng.
Khi cập nhật, các giá trị không có dữ liệu sẽ bị bỏ qua. Để xoá dữ liệu, hãy dùng một chuỗi trống (""). Bạn cũng có thể xoá các giá trị khỏi nhiều dải ô mà không cần thay thế chúng bằng cách dùng phương thức spreadsheets.values.batchClear.
Nếu bạn đang sử dụng siêu dữ liệu nhà phát triển, hãy xem hướng dẫn về siêu dữ liệu nhà phát triển để biết thông tin về cách sử dụng bộ lọc dữ liệu để đọc, cập nhật hoặc xoá các giá trị bằng phương thức spreadsheets.values.batchGetByDataFilter, spreadsheets.values.batchUpdateByDataFilter và spreadsheets.values.batchClearByDataFilter.
Ghi giá trị vào nhiều dải ô
Nếu muốn viết nhiều dải ô không liên tục, bạn có thể dùng một yêu cầu spreadsheets.values.batchUpdate:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Nội dung của yêu cầu cập nhật theo lô phải là một đối tượng BatchUpdateValuesRequest, chứa một ValueInputOption và một danh sách các đối tượng ValueRange (một đối tượng cho mỗi dải ô được ghi). Mỗi đối tượng ValueRange chỉ định range, majorDimension và dữ liệu đầu vào riêng.
Thêm giá trị
Để thêm dữ liệu sau bảng dữ liệu trong một trang tính, hãy dùng yêu cầu spreadsheets.values.append:
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
Nội dung của yêu cầu cập nhật phải là một đối tượng ValueRange, mặc dù trường bắt buộc duy nhất là values. Nếu bạn chỉ định range, thì thông số này phải khớp với phạm vi trong URL. Trong ValueRange, bạn có thể tuỳ ý chỉ định majorDimension của.
Theo mặc định, ROWS sẽ được dùng. Nếu COLUMNS được chỉ định, mỗi mảng bên trong sẽ được ghi vào một cột thay vì một hàng.
Phạm vi đầu vào được dùng để tìm kiếm dữ liệu hiện có và tìm "bảng" trong phạm vi đó. Các giá trị được thêm vào hàng tiếp theo của bảng, bắt đầu từ cột đầu tiên của bảng. Ví dụ: hãy xem xét Sheet1 có dạng như sau:
| A | B | C | D | E | |
| 1 | x | năm | z | ||
| 2 | x | năm | z | ||
| 3 | |||||
| 4 | x | năm | |||
| 5 | năm | z | |||
| 6 | x | năm | z | ||
| 7 |
Có hai bảng trong trang tính: A1:C2 và B4:D6. Các giá trị được thêm vào sẽ bắt đầu từ B7 cho tất cả các đầu vào range sau đây:
Sheet1, vì hàm này sẽ kiểm tra tất cả dữ liệu trong trang tính và xác định rằng bảng tạiB4:D6là bảng cuối cùng.B4hoặcC5:D5, vì cả hai đều nằm trong bảngB4:D6.B2:D4, vì bảng cuối cùng trong dải ô là bảngB4:D6(mặc dù bảng này cũng chứa bảngA1:C2).A3:G10, vì bảng cuối cùng trong dải ô là bảngB4:D6(mặc dù bắt đầu trước và kết thúc sau bảng này).
Các đầu vào range sau đây sẽ không bắt đầu ghi vào lúc B7:
A1sẽ bắt đầu viết tạiA3, vì đó là trong bảngA1:C2.E4sẽ bắt đầu viết tạiE4vì không có trong bảng nào. (A4cũng sẽ bắt đầu viết lúcA4vì những lý do tương tự.)
Ngoài ra, bạn có thể chọn ghi đè dữ liệu hiện có sau khi tạo bảng hoặc chèn các hàng mới cho dữ liệu mới. Theo mặc định, dữ liệu đầu vào sẽ ghi đè dữ liệu sau bảng. Để ghi dữ liệu mới vào các hàng mới, hãy sử dụng InsertDataOption và chỉ định insertDataOption=INSERT_ROWS.
Để tìm hiểu thêm về giới hạn ô và hàng trong Trang tính, hãy xem bài viết Các tệp bạn có thể lưu trữ trong Google Drive.