สเปรดชีตมีชีตได้หลายชีต โดยแต่ละชีตมีแถวหรือคอลัมน์ได้ไม่จำกัด เซลล์คือตำแหน่ง
ที่จุดตัดของแถวและคอลัมน์หนึ่งๆ และอาจมีค่าข้อมูล
อยู่ Google Sheets API มีทรัพยากร
spreadsheets.values
เพื่อให้สามารถอ่านและเขียนค่าได้
หน้านี้อธิบายพื้นฐานของการใช้spreadsheets.values
หากต้องการแทรกแถวหรืออัปเดตรูปแบบและพร็อพเพอร์ตี้อื่นๆ ในชีต คุณต้องใช้วิธี spreadsheets.batchUpdate
ที่อธิบายไว้ในอัปเดตสเปรดชีต
เมธอด
แหล่งข้อมูล
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.batchGet
ที่ช่วยให้คุณระบุช่วงหลายช่วงที่จะดึงข้อมูลได้
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
การตอบกลับคำขอนี้จะแสดงเป็นออบเจ็กต์
BatchGetValuesResponse
ซึ่งมี spreadsheetId
และรายการออบเจ็กต์
ValueRange
เขียน
หากต้องการเขียนไปยังชีต คุณต้องมีรหัสสเปรดชีต ช่วงของเซลล์ในรูปแบบ A1 และข้อมูลที่ต้องการเขียนภายในออบเจ็กต์เนื้อหาคำขอที่เหมาะสม ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสเปรดชีตและรูปแบบ A1 ได้ที่ ภาพรวมของ Google Sheets API
การอัปเดตต้องใช้พารามิเตอร์ ValueInputOption
ที่ถูกต้อง
สำหรับการอัปเดตรายการเดียว พารามิเตอร์การค้นหานี้เป็นพารามิเตอร์ที่จำเป็น สำหรับการอัปเดตแบบเป็นกลุ่ม
ต้องระบุพารามิเตอร์นี้ในเนื้อหาคำขอ ValueInputOption
ตัวควบคุม
จะกำหนดวิธีตีความข้อมูลอินพุตและจะแยกวิเคราะห์สตริงอินพุตหรือไม่
ตามที่อธิบายไว้ในตารางต่อไปนี้
ValueInputOption |
คำอธิบาย |
---|---|
RAW |
ระบบจะไม่แยกวิเคราะห์ข้อมูลที่ป้อนและจะแทรกเป็นสตริง เช่น การป้อน "=1+2" จะวางสตริง "=1+2" ไว้ในเซลล์ ไม่ใช่สูตร (ค่าที่ไม่ใช่สตริง เช่น บูลีนหรือตัวเลข จะได้รับการจัดการเป็น RAW เสมอ) |
USER_ENTERED |
ระบบจะแยกวิเคราะห์อินพุตเหมือนกับว่ามีการป้อนลงใน UI ของชีต เช่น "1 มี.ค. 2016" จะกลายเป็นวันที่ และ "=1+2" จะกลายเป็นสูตร ระบบยังอนุมานรูปแบบได้ด้วย ดังนั้น "$100.15" จึงกลายเป็นตัวเลขที่มีการจัดรูปแบบสกุลเงิน |
วิธีการอัปเดตรายการเดียวและแบบเป็นกลุ่มจะอธิบายไว้ด้านล่าง ดูตัวอย่างการดำเนินการเขียนพื้นฐานได้ที่การเขียนพื้นฐาน
เขียนไปยังช่วงเดียว
หากต้องการเขียนข้อมูลไปยังช่วงเดียว ให้ใช้คำขอ
spreadsheets.values.update
ต่อไปนี้
Apps Script
Java
JavaScript
Node.js
PHP
Python
Ruby
เนื้อหาของคำขออัปเดตต้องเป็นออบเจ็กต์ ValueRange
แม้ว่าฟิลด์ที่จำเป็นจะมีเพียง values
ก็ตาม หากระบุ range
ค่าดังกล่าว
ต้องตรงกับช่วงใน URL ใน ValueRange
คุณจะระบุ
majorDimension
ของValueRange
ได้
โดยค่าเริ่มต้น ระบบจะใช้ ROWS
หากระบุ COLUMNS
ระบบจะเขียนอาร์เรย์ด้านในแต่ละรายการลงในคอลัมน์แทนแถว
เมื่ออัปเดต ระบบจะข้ามค่าที่ไม่มีข้อมูล หากต้องการล้างข้อมูล ให้ใช้สตริงว่าง ("")
เขียนช่วงหลายช่วง
หากต้องการเขียนช่วงที่ไม่ต่อเนื่องหลายช่วง ให้ใช้คำขอต่อไปนี้
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
ของValueRange
ได้
โดยค่าเริ่มต้น ระบบจะใช้ 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:D6
B2:D4
เนื่องจากตารางสุดท้ายในช่วงคือตารางB4:D6
(แม้ว่าจะมีตารางA1:C2
อยู่ด้วยก็ตาม)A3:G10
เนื่องจากตารางสุดท้ายในช่วงคือตารางB4:D6
(แม้ว่าจะเริ่มต้นก่อนและสิ้นสุดหลังจากตารางนี้)
range
ต่อไปนี้จะไม่เริ่มเขียนที่ B7
A1
จะเริ่มเขียนที่A3
เนื่องจากอยู่ในตารางA1:C2
E4
จะเริ่มเขียนที่E4
เนื่องจากไม่ได้อยู่ในตารางใดๆ (A4
จะเริ่มเขียนที่A4
ด้วยเหตุผลเดียวกัน)
นอกจากนี้ คุณยังเลือกได้ว่าจะเขียนทับข้อมูลที่มีอยู่หลังจาก
ตารางหรือแทรกแถวใหม่สำหรับข้อมูลใหม่หรือไม่ โดยค่าเริ่มต้น อินพุตจะเขียนทับข้อมูล
หลังจากตาราง หากต้องการเขียนข้อมูลใหม่ลงในแถวใหม่ ให้ใช้
InsertDataOption
และระบุ insertDataOption=INSERT_ROWS
ดูข้อมูลเพิ่มเติมเกี่ยวกับขีดจำกัดของเซลล์และแถวในชีตได้ที่ไฟล์ที่เก็บไว้ใน Google ไดรฟ์ได้