เอกสารนี้อธิบายพื้นฐานของการใช้ทรัพยากร
spreadsheets.values
สเปรดชีตมีได้หลายชีต โดยแต่ละชีตมีแถวหรือคอลัมน์ได้ไม่จำกัด เซลล์คือตำแหน่ง
ที่จุดตัดของแถวและคอลัมน์หนึ่งๆ และอาจมีค่าข้อมูล
อยู่ Google Sheets API มีspreadsheets.valuesเพื่อเปิดใช้
การอ่านและเขียนค่า
หากต้องการแทรกแถวหรืออัปเดตรูปแบบและพร็อพเพอร์ตี้อื่นๆ ใน
ชีต คุณต้องใช้วิธี
batchUpdate
ของแหล่งข้อมูล
spreadsheets
ตามที่อธิบายไว้ในอัปเดตสเปรดชีต
วิธีการของทรัพยากร
spreadsheets.values
ทรัพยากรมีวิธีการต่อไปนี้สำหรับการอ่านและเขียนค่า โดยแต่ละวิธีมีไว้สำหรับ
งานที่เฉพาะเจาะจง
| การเข้าถึงช่วง | การอ่าน | การเขียน |
|---|---|---|
| ช่วงเดียว | spreadsheets.values.get |
spreadsheets.values.update |
| หลายช่วง | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
| การต่อท้าย | spreadsheets.values.append |
โดยทั่วไปแล้ว การรวมการอ่านหรือการอัปเดตหลายรายการเข้าด้วยกันด้วยเมธอด
batchGet และ batchUpdate (ตามลำดับ) เป็นแนวทางที่ดี เนื่องจากจะช่วยเพิ่ม
ประสิทธิภาพ
คุณดูตัวอย่างโค้ดของแต่ละวิธีได้ในหน้าตัวอย่างการอ่าน พื้นฐานและการเขียน พื้นฐาน ดูโค้ด ตัวอย่างทั้งหมดได้ที่หน้าภาพรวมของตัวอย่าง
อ่านค่าเซลล์
หากต้องการอ่านค่าข้อมูลจากชีต คุณต้องมีรหัสสเปรดชีตและสัญกรณ์ A1
สำหรับช่วง การระบุช่วงโดยไม่มีรหัสชีต (A1:B2)
หมายความว่าคำขอจะดำเนินการในชีตแรกในสเปรดชีต ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสเปรดชีตและรูปแบบ A1 ได้ที่ภาพรวมของ Google Sheets API
พารามิเตอร์การค้นหาที่ไม่บังคับหลายรายการจะควบคุมรูปแบบของเอาต์พุต ดังนี้
| พารามิเตอร์รูปแบบ | ค่าเริ่มต้น |
|---|---|
majorDimension |
ROWS |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
โปรดทราบว่าคุณควรใช้ dateTimeRenderOption เฉพาะในกรณีที่ valueRenderOption
ไม่ใช่ FORMATTED_VALUE
ไม่มีการจำกัดจำนวนข้อมูลที่แสดงอย่างชัดเจน ข้อผิดพลาดจะไม่แสดงข้อมูล ระบบจะข้ามแถวและคอลัมน์ต่อท้ายที่ว่างเปล่า
ส่วนต่อไปนี้จะอธิบายเมธอด get แบบรายการเดียวและแบบกลุ่ม ดูตัวอย่างโค้ดเพิ่มเติมของการดำเนินการอ่านพื้นฐานได้ที่การอ่านพื้นฐาน
อ่านค่าจากช่วงเดียว
หากต้องการอ่านค่าช่วงเดียวจากสเปรดชีต ให้ใช้คำขอ
spreadsheets.values.get
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
การตอบกลับคำขอนี้จะแสดงผลเป็นออบเจ็กต์
ValueRange
ซึ่งเป็นส่วนหนึ่งของทรัพยากร
spreadsheets.values
อ่านค่าจากหลายช่วง
หากต้องการอ่านค่าหลายช่วงที่ต่อเนื่องกันจากสเปรดชีต ให้ใช้คำขอ
spreadsheets.values.batchGet
ที่ช่วยให้คุณระบุช่วงหลายช่วงที่จะดึงข้อมูลได้
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
การตอบกลับคำขอนี้จะแสดงผลเป็นออบเจ็กต์ BatchGetValuesResponse ซึ่งมี spreadsheetId และรายการออบเจ็กต์ ValueRange
เขียนค่าเซลล์
หากต้องการเขียนไปยังชีต คุณต้องมีรหัสสเปรดชีต ช่วงของเซลล์ในรูปแบบ A1 และข้อมูลที่ต้องการเขียนภายในออบเจ็กต์เนื้อหาคำขอที่เหมาะสม ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสเปรดชีตและรูปแบบ A1 ได้ที่ ภาพรวมของ Google Sheets API
พารามิเตอร์การค้นหาหลายรายการจะควบคุมวิธีเขียนข้อมูลและวิธีจัดรูปแบบการตอบกลับ ดังนี้
| เขียนพารามิเตอร์ | ค่าเริ่มต้น |
|---|---|
valueInputOption |
(ต้องระบุ) |
includeValuesInResponse |
false |
responseValueRenderOption |
FORMATTED_VALUE |
responseDateTimeRenderOption |
SERIAL_NUMBER |
พารามิเตอร์ valueInputOption ที่จำเป็นจะควบคุมวิธีตีความข้อมูลอินพุต
(สำหรับการอัปเดตแบบเป็นกลุ่ม ให้ระบุพารามิเตอร์นี้ในส่วนเนื้อหาของคำขอแทน) ตัวเลือกที่รองรับมีคำอธิบายในตารางต่อไปนี้
ValueInputOption |
คำอธิบาย |
|---|---|
RAW |
ระบบจะไม่แยกวิเคราะห์ข้อมูลที่ป้อนและจะแทรกเป็นสตริง เช่น อินพุต "=1+2" จะวางสตริง "=1+2" ไว้ในเซลล์ ไม่ใช่สูตร (ระบบจะจัดการค่าที่ไม่ใช่สตริง เช่น บูลีนหรือตัวเลข เป็น RAW เสมอ) |
USER_ENTERED |
ระบบจะแยกวิเคราะห์อินพุตเหมือนกับว่ามีการป้อนลงใน UI ของชีต เช่น "1 มี.ค. 2016" จะกลายเป็นวันที่ และ "=1+2" จะกลายเป็นสูตร ระบบยังอนุมานรูปแบบได้ด้วย ดังนั้น "$100.15" จึงกลายเป็นตัวเลขที่มีการจัดรูปแบบสกุลเงิน |
โปรดทราบว่าคุณควรใช้ responseDateTimeRenderOption ก็ต่อเมื่อ responseValueRenderOption ไม่ใช่ FORMATTED_VALUE
ส่วนต่อไปนี้จะอธิบายวิธีการอัปเดตรายการเดียวและการอัปเดตเป็นกลุ่ม ดูตัวอย่างโค้ดเพิ่มเติมของการดำเนินการเขียนพื้นฐานได้ที่การเขียนพื้นฐาน
เขียนค่าไปยังช่วงเดียว
หากต้องการเขียนข้อมูลไปยังช่วงเดียว ให้ใช้คำขอ
spreadsheets.values.update
ต่อไปนี้
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
เนื้อหาของคำขออัปเดตต้องเป็นออบเจ็กต์
ValueRange
แม้ว่าฟิลด์ที่จำเป็นจะมีเพียง values เท่านั้น หากระบุ range ค่าดังกล่าว
ต้องตรงกับช่วงใน URL ใน ValueRange คุณจะระบุmajorDimension
ของ
ได้โดยไม่บังคับ
โดยค่าเริ่มต้น ระบบจะใช้ ROWS หากระบุ COLUMNS ระบบจะเขียนอาร์เรย์ด้านในแต่ละรายการลงในคอลัมน์แทนแถว
เมื่ออัปเดต ระบบจะข้ามค่าที่ไม่มีข้อมูล หากต้องการล้างข้อมูล ให้ใช้สตริงว่าง ("") คุณยังล้างค่าจากหลายช่วงได้โดยไม่ต้องแทนที่ค่าเหล่านั้นด้วยการใช้เมธอด
spreadsheets.values.batchClear
หากคุณใช้ข้อมูลเมตาของนักพัฒนาซอฟต์แวร์ โปรดดูข้อมูลเกี่ยวกับการใช้ตัวกรองข้อมูลเพื่ออ่าน อัปเดต หรือล้างค่าด้วยเมธอด spreadsheets.values.batchGetByDataFilter, spreadsheets.values.batchUpdateByDataFilter และ spreadsheets.values.batchClearByDataFilter ในคู่มือข้อมูลเมตาของนักพัฒนาซอฟต์แวร์
เขียนค่าไปยังหลายช่วง
หากต้องการเขียนช่วงที่ไม่ต่อเนื่องหลายช่วง ให้ใช้คำขอต่อไปนี้
spreadsheets.values.batchUpdate
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
เนื้อหาของคำขอการอัปเดตเป็นกลุ่มต้องเป็นออบเจ็กต์
BatchUpdateValuesRequest
ซึ่งมี ValueInputOption และรายการออบเจ็กต์
ValueRange (รายการละ 1 รายการสำหรับแต่ละช่วงที่เขียน) ออบเจ็กต์ ValueRange แต่ละรายการจะระบุ range, majorDimension และข้อมูลอินพุตของตัวเอง
ผนวกค่า
หากต้องการเพิ่มข้อมูลต่อท้ายตารางข้อมูลในชีต ให้ใช้คำขอ
spreadsheets.values.append
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
เนื้อหาของคำขออัปเดตต้องเป็นออบเจ็กต์
ValueRange
แม้ว่าฟิลด์ที่จำเป็นจะมีเพียง values เท่านั้น หากระบุ range ค่าดังกล่าว
ต้องตรงกับช่วงใน URL ใน ValueRange คุณจะระบุmajorDimension
ของ
ได้โดยไม่บังคับ
โดยค่าเริ่มต้น ระบบจะใช้ ROWS หากระบุ COLUMNS ระบบจะเขียนอาร์เรย์ด้านในแต่ละรายการลงในคอลัมน์แทนแถว
ระบบจะใช้ช่วงอินพุตเพื่อค้นหาข้อมูลที่มีอยู่และค้นหา "ตาราง" ภายในช่วงนั้น
ระบบจะผนวกค่าไว้ที่แถวถัดไปของตาราง โดยเริ่มจาก
คอลัมน์แรกของตาราง เช่น ลองพิจารณา Sheet1 ที่มีลักษณะดังนี้
| A | ข | C | D | E | |
| 1 | x | y | z | ||
| 2 | x | y | z | ||
| 3 | |||||
| 4 | x | y | |||
| 5 | y | z | |||
| 6 | x | y | z | ||
| 7 |
ชีตมี 2 ตาราง ได้แก่ A1:C2 และ B4:D6 ค่าที่ต่อท้ายจะ
เริ่มต้นที่ B7 สำหรับอินพุต range ทั้งหมดต่อไปนี้
Sheet1เนื่องจากจะตรวจสอบข้อมูลทั้งหมดในชีตและพิจารณา ว่าตารางที่B4:D6เป็นตารางสุดท้ายB4หรือC5:D5เนื่องจากทั้ง 2 รายการอยู่ในตารางB4:D6B2:D4เนื่องจากตารางสุดท้ายในช่วงคือตารางB4:D6(แม้ว่าจะมีตารางA1:C2อยู่ด้วย)A3:G10เนื่องจากตารางสุดท้ายในช่วงคือตารางB4:D6(แม้ว่าจะ เริ่มก่อนและสิ้นสุดหลังจากตารางนี้)
range ต่อไปนี้จะไม่เริ่มเขียนที่ B7
A1จะเริ่มเขียนที่A3เนื่องจากอยู่ในตารางA1:C2E4จะเริ่มเขียนที่E4เนื่องจากไม่ได้อยู่ในตารางใดๆ (A4จะเริ่มเขียนที่A4ด้วยเหตุผลเดียวกัน)
นอกจากนี้ คุณยังเลือกได้ว่าจะเขียนทับข้อมูลที่มีอยู่หลังจาก
ตารางหรือแทรกแถวใหม่สำหรับข้อมูลใหม่หรือไม่ โดยค่าเริ่มต้น อินพุตจะเขียนทับข้อมูล
หลังจากตาราง หากต้องการเขียนข้อมูลใหม่ลงในแถวใหม่ ให้ใช้
InsertDataOption
และระบุ insertDataOption=INSERT_ROWS
ดูข้อมูลเพิ่มเติมเกี่ยวกับขีดจำกัดของเซลล์และแถวในชีตได้ที่ไฟล์ที่คุณ เก็บไว้ใน Google ไดรฟ์ได้