Google ชีต API ช่วยให้คุณเขียนค่าและสูตรลงในเซลล์ ช่วง ชุดช่วง และทั้งชีตได้ ตัวอย่างในหน้านี้แสดงให้เห็นว่าการดำเนินการเขียนทั่วไปบางอย่างสามารถทำได้ด้วยทรัพยากร spreadsheets.values ของชีต API
โปรดทราบว่าคุณยังเขียนค่าเซลล์ได้โดยใช้เมธอด
spreadsheet.batchUpdate
ซึ่งอาจมีประโยชน์หากต้องการอัปเดตรูปแบบเซลล์พร้อมกัน
หรือพร็อพเพอร์ตี้อื่นๆ ที่แหล่งข้อมูล
spreadsheets.values
ไม่ส่งผลกระทบ เช่น หากต้องการคัดลอกช่วงของเซลล์จาก
ชีตหนึ่งไปยังอีกชีตหนึ่งขณะเขียนทับทั้งสูตรเซลล์และการจัดรูปแบบเซลล์
คุณสามารถใช้วิธีUpdateCellsRequest
กับ
spreadsheet.batchUpdate
อย่างไรก็ตาม สำหรับการเขียนค่าอย่างง่าย การใช้เมธอด
spreadsheets.values.update
หรือเมธอด
spreadsheets.values.batchUpdate
จะง่ายกว่า
ตัวอย่างเหล่านี้จะแสดงในรูปแบบคำขอ HTTP เพื่อให้เป็นกลางทางภาษา ดูวิธีใช้การเขียนในภาษาต่างๆ โดยใช้ไลบรารีของไคลเอ็นต์ Google API ได้ที่อ่านและเขียนค่า เซลล์
ในตัวอย่างเหล่านี้ ตัวยึดตำแหน่ง SPREADSHEET_ID จะระบุ
ตำแหน่งที่คุณจะระบุรหัส
สเปรดชีต ซึ่งดูได้จาก
URL ของสเปรดชีต คุณระบุช่วงที่จะเขียนได้โดยใช้รูปแบบ A1 ตัวอย่างช่วงคือ Sheet1!A1:D5
เขียนช่วงเดียว
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.values.update
แสดงวิธีเขียนค่าลงในช่วงโดยเริ่มจากสเปรดชีตใหม่ที่ว่างเปล่า ต้องระบุพารามิเตอร์การค้นหา
ValueInputOption
และจะกำหนดว่าค่าที่เขียนจะได้รับการแยกวิเคราะห์หรือไม่ (เช่น จะแปลงสตริงเป็นวันที่หรือไม่)
เนื้อหาคำขอคือออบเจ็กต์
ValueRange
ที่อธิบายค่าช่วงที่จะเขียน ฟิลด์
majorDimension
ระบุว่าอาร์เรย์คือรายการค่าที่จัดระเบียบตามแถว ระบบจะเขียนทับค่าที่มีอยู่
ในช่วงเป้าหมาย
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION{
"range": "Sheet1!A1:D5",
"majorDimension": "ROWS",
"values": [
["Item", "Cost", "Stocked", "Ship Date"],
["Wheel", "$20.50", "4", "3/1/2016"],
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "3/20/2016"],
["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
],
}การตอบกลับประกอบด้วยออบเจ็กต์
UpdateValuesResponse
เช่น ออบเจ็กต์นี้
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}ชีตที่ได้จะมีลักษณะดังนี้
| A | ข | C | D | |
| 1 | รายการ | ค่าใช้จ่าย | จัดเก็บ | วันที่จัดส่ง |
| 2 | ตั๋วขึ้นชิงช้าสวรรค์ | $20.50 | 4 | 1/3/2016 |
| 3 | ประตู | $15 | 2 | 15/3/2016 |
| 4 | เครื่องยนต์ | $100 | 1 | 20/3/2016 |
| 5 | ผลรวม | $135.5 | 7 | 20/3/2016 |
เขียนไปยังช่วงที่เลือก
เมื่อเขียนค่าลงในช่วง คุณสามารถหลีกเลี่ยงการเปลี่ยนแปลงเซลล์ที่มีอยู่บางเซลล์ได้โดยการตั้งค่าองค์ประกอบอาร์เรย์ที่เกี่ยวข้องเป็น null นอกจากนี้ คุณยังล้างเซลล์ได้โดยเขียนสตริงว่าง ("") ลงในเซลล์
เริ่มต้นด้วยชีตที่มีข้อมูลเดียวกันซึ่งสร้างขึ้นจากตัวอย่าง
ด้านบน ตัวอย่างโค้ดต่อไปนี้
spreadsheets.values.update
แสดงวิธีเขียนค่าลงในช่วง B1:D4 โดยเลือก
ปล่อยให้บางเซลล์ไม่มีการเปลี่ยนแปลงและล้างเซลล์อื่นๆ ต้องระบุพารามิเตอร์การค้นหา
ValueInputOption
และจะกำหนดว่าค่าที่เขียนจะได้รับการแยกวิเคราะห์หรือไม่ (เช่น จะแปลงสตริงเป็นวันที่หรือไม่)
เนื้อหาคำขอคือออบเจ็กต์
ValueRange
ที่อธิบายค่าช่วงที่จะเขียน ฟิลด์
majorDimension
ระบุว่าอาร์เรย์คือรายการค่าที่จัดระเบียบตามคอลัมน์
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION{
"range": "Sheet1!B1",
"majorDimension": "COLUMNS",
"values": [
[null,"$1","$2", ""],
[],
[null,"4/1/2016", "4/15/2016", ""]
]
}values ฟิลด์ที่นี่จะแสดงการเปลี่ยนแปลงที่เกิดขึ้นกับแต่ละคอลัมน์ในช่วง อาร์เรย์แรกระบุว่า B1 จะไม่เปลี่ยนแปลง (เนื่องจากองค์ประกอบอาร์เรย์ null)
ส่วน B4 จะล้าง (สตริงว่าง) B2 และ B3 มีการอัปเดตค่า
อาร์เรย์ที่ 3 จะดำเนินการเดียวกันกับคอลัมน์ D ส่วนอาร์เรย์ว่างที่ 2 จะระบุว่าคอลัมน์ C จะไม่มีการเปลี่ยนแปลง
การตอบกลับประกอบด้วยออบเจ็กต์
UpdateValuesResponse
เช่นออบเจ็กต์นี้
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!B1:D5",
"updatedRows": 3,
"updatedColumns": 2,
"updatedCells": 6,
}ชีตที่ได้จะมีลักษณะดังนี้
| A | ข | C | D | |
| 1 | รายการ | ค่าใช้จ่าย | จัดเก็บ | วันที่จัดส่ง |
| 2 | ตั๋วขึ้นชิงช้าสวรรค์ | $1.00 | 4 | 1/4/2016 |
| 3 | ประตู | 80 บาท | 2 | 15/4/2016 |
| 4 | เครื่องยนต์ | 1 | ||
| 5 | ผลรวม | $3.00 | 7 | 15/4/2016 |
โปรดทราบว่าแถว "ผลรวม" จะมีการเปลี่ยนแปลงเนื่องจากเซลล์มีสูตรที่ขึ้นอยู่กับเซลล์ที่เปลี่ยนแปลง แม้ว่าคำขอนี้จะไม่ได้เปลี่ยนแปลงแถว "ผลรวม" โดยตรงก็ตาม
เขียนไปยังช่วงหลายช่วง
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.values.batchUpdate
แสดงวิธีเขียนค่าลงในช่วง Sheet1!A1:A4 และ
Sheet1!B1:D2 โดยเริ่มจากชีตเปล่า ระบบจะเขียนทับค่าที่มีอยู่ในช่วงเป้าหมาย ส่วนเนื้อหาของคำขอ
ประกอบด้วยออบเจ็กต์ ValueInputOption ที่
แสดงวิธีตีความข้อมูลอินพุตและอาร์เรย์ของออบเจ็กต์
ValueRange
ที่สอดคล้องกับแต่ละช่วงที่เขียน ฟิลด์
majorDimension
จะกำหนดว่าควรถือว่าอาร์เรย์ที่รวมเป็นอาร์เรย์ของคอลัมน์หรือแถว
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values:batchUpdate{
"valueInputOption": "VALUE_INPUT_OPTION",
"data": [
{
"range": "Sheet1!A1:A4",
"majorDimension": "COLUMNS",
"values": [
["Item", "Wheel", "Door", "Engine"]
]
},
{
"range": "Sheet1!B1:D2",
"majorDimension": "ROWS",
"values": [
["Cost", "Stocked", "Ship Date"],
["$20.50", "4", "3/1/2016"]
]
}
]
}การตอบกลับประกอบด้วยออบเจ็กต์ที่แสดงสถิติของเซลล์ที่อัปเดต
และอาร์เรย์ของออบเจ็กต์
UpdateValuesResponse
หนึ่งรายการสำหรับแต่ละช่วงที่อัปเดต เช่น
{
"spreadsheetId": SPREADSHEET_ID,
"totalUpdatedRows": 4,
"totalUpdatedColumns": 4,
"totalUpdatedCells": 10,
"totalUpdatedSheets": 1,
"responses": [
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A1:A4",
"updatedRows": 4,
"updatedColumns": 1,
"updatedCells": 4,
},
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!B1:D2",
"updatedRows": 2,
"updatedColumns": 3,
"updatedCells": 6,
}
],
}ชีตที่ได้จะมีลักษณะดังนี้
| A | ข | C | D | |
| 1 | รายการ | ค่าใช้จ่าย | จัดเก็บ | วันที่จัดส่ง |
| 2 | ตั๋วขึ้นชิงช้าสวรรค์ | $20.50 | 4 | 1/3/2016 |
| 3 | ประตู | |||
| 4 | เครื่องยนต์ | |||
| 5 |
เขียนค่าโดยไม่ต้องแยกวิเคราะห์
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.values.update
ซึ่งเริ่มต้นด้วยชีตเปล่าจะแสดงวิธีเขียนค่าลงในช่วง Sheet1!A1:E1 แต่ใช้พารามิเตอร์การค้นหา RAW ValueInputOption
เพื่อป้องกันไม่ให้ระบบแยกวิเคราะห์สตริงที่เขียนเป็นสูตร
บูลีน หรือตัวเลข โดยจะปรากฏเป็นสตริงและมีการจัดแนวข้อความแบบชิดขอบ
ในชีต
เนื้อหาคำขอคือออบเจ็กต์
ValueRange
ที่อธิบายค่าช่วงที่จะเขียน ฟิลด์
majorDimension
ระบุว่าอาร์เรย์คือรายการค่าที่จัดระเบียบตามแถว ระบบจะเขียนทับค่าที่มีอยู่
ในช่วงเป้าหมาย
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1?valueInputOption=RAW{
"range": "Sheet1!A1:E1",
"majorDimension": "ROWS",
"values": [
["Data", 123.45, true, "=MAX(D2:D4)", "10"]
],
}การตอบกลับประกอบด้วยออบเจ็กต์
UpdateValuesResponse
เช่นออบเจ็กต์นี้
{
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A1:E1",
"updatedRows": 1,
"updatedColumns": 5,
"updatedCells": 5,
}ชีตที่ได้จะมีลักษณะดังนี้
| A | ข | C | D | E | |
| 1 | ข้อมูล | 123.45 | จริง | =MAX(D2:D4) | 10 |
| 2 |
โปรดทราบว่า "TRUE" จะอยู่ตรงกลางและเป็นค่าบูลีน ส่วน "123.45" จะชิดขวาเนื่องจากเป็นตัวเลข และ "10" จะชิดซ้ายเนื่องจากเป็นสตริง ระบบจะไม่แยกวิเคราะห์สูตรและจะแสดงเป็นสตริงด้วย
ผนวกค่า
เริ่มต้นด้วยชีตเช่นตารางด้านล่าง
| A | ข | C | D | |
| 1 | รายการ | ค่าใช้จ่าย | จัดเก็บ | วันที่จัดส่ง |
| 2 | ตั๋วขึ้นชิงช้าสวรรค์ | $20.50 | 4 | 1/3/2016 |
| 3 |
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.values.append
แสดงวิธีเพิ่มค่า 2 แถวใหม่โดยเริ่มจากแถวที่ 3 ต้องระบุพารามิเตอร์การค้นหา
ValueInputOption
และจะกำหนดว่าค่าที่เขียนจะได้รับการแยกวิเคราะห์หรือไม่ (เช่น จะแปลงสตริงเป็นวันที่หรือไม่)
เนื้อหาคำขอคือออบเจ็กต์
ValueRange
ที่อธิบายค่าช่วงที่จะเขียน ฟิลด์
majorDimension
ระบุว่าอาร์เรย์คือรายการค่าที่จัดระเบียบตามแถว
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION{
"range": "Sheet1!A1:E1",
"majorDimension": "ROWS",
"values": [
["Door", "$15", "2", "3/15/2016"],
["Engine", "$100", "1", "3/20/2016"],
],
}การตอบกลับประกอบด้วยออบเจ็กต์
AppendValuesResponse
เช่นออบเจ็กต์นี้
{
"spreadsheetId": SPREADSHEET_ID,
"tableRange": "Sheet1!A1:D2",
"updates": {
"spreadsheetId": SPREADSHEET_ID,
"updatedRange": "Sheet1!A3:D4",
"updatedRows": 2,
"updatedColumns": 4,
"updatedCells": 8,
}
}ชีตที่ได้จะมีลักษณะดังนี้
| A | ข | C | D | |
| 1 | รายการ | ค่าใช้จ่าย | จัดเก็บ | วันที่จัดส่ง |
| 2 | ตั๋วขึ้นชิงช้าสวรรค์ | $20.50 | 4 | 1/3/2016 |
| 3 | ประตู | $15 | 2 | 15/3/2016 |
| 4 | เครื่องยนต์ | $100 | 1 | 20/3/2016 |
| 5 |