Google ชีต API ช่วยให้คุณจัดการข้อมูลภายในสเปรดชีตได้หลายวิธี ฟังก์ชันส่วนใหญ่ที่พร้อมใช้งานสำหรับผู้ใช้ที่ทำงานกับ UI ของชีตนั้นสามารถใช้ชีต API ได้เช่นกัน ตัวอย่างในหน้านี้แสดงวิธีดำเนินการทั่วไปบางอย่างในสเปรดชีตด้วย Sheets API
ตัวอย่างเหล่านี้แสดงในรูปแบบคำขอ HTTP เพื่อไม่ระบุภาษา ดูวิธีใช้การอัปเดตแบบเป็นกลุ่มในภาษาต่างๆ โดยใช้ไลบรารีของไคลเอ็นต์ Google API ได้ที่อัปเดตสเปรดชีต
ในตัวอย่างเหล่านี้ ตัวยึดตําแหน่ง SPREADSHEET_ID
และ SHEET_ID
จะระบุตําแหน่งที่คุณควรระบุรหัสเหล่านั้น คุณจะพบรหัสสเปรดชีตใน URL ของสเปรดชีต คุณรับรหัสชีตได้โดยใช้เมธอด spreadsheets.get
โดยระบุช่วงโดยใช้รูปแบบ A1 ตัวอย่างช่วงคือ Sheet1!A1:D5
ใช้การตรวจสอบข้อมูลกับช่วง
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.batchUpdate
แสดงวิธีใช้ SetDataValidationRequest
เพื่อใช้กฎการตรวจสอบข้อมูล "ค่า > 5" กับทุกเซลล์ในช่วง A1:D10
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"setDataValidation": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"rule": {
"condition": {
"type": "NUMBER_GREATER",
"values": [
{
"userEnteredValue": "5"
}
]
},
"inputMessage": "Value must be > 5",
"strict": true
}
}
}
]
}
คัดลอกและวางการจัดรูปแบบเซลล์
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.batchUpdate
แสดงวิธีใช้ CopyPasteRequest
เพื่อคัดลอกการจัดรูปแบบเฉพาะในช่วง A1:D10 และวางลงในช่วงที่ F1:I10 ในชีตเดียวกัน วิธีนี้ใช้ Enum PasteType
ที่มี PASTE_FORMAT
เพื่อวางการจัดรูปแบบและการตรวจสอบข้อมูลเท่านั้น ค่าเดิมใน A1:D10 จะไม่มีการเปลี่ยนแปลง
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "copyPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 5, "endColumnIndex": 9 }, "pasteType": "PASTE_FORMAT", "pasteOrientation": "NORMAL" } } ] }
ตัดและวางเซลล์
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.batchUpdate
แสดงวิธีใช้
CutPasteRequest
สูตรนี้จะตัดช่วง A1:D10 และใช้ PasteType
enum กับ PASTE_NORMAL
เพื่อวางค่า สูตร การจัดรูปแบบ และผสานกับช่วง F1:I10 ในชีตเดียวกัน ระบบจะนำเนื้อหาเซลล์ของช่วงแหล่งที่มาเดิมออก
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{ "requests": [ { "cutPaste": { "source": { "sheetId":SHEET_ID
, "startRowIndex": 0, "endRowIndex": 10, "startColumnIndex": 0, "endColumnIndex": 4 }, "destination": { "sheetId":SHEET_ID
, "rowIndex": 0, "columnIndex": 5 }, "pasteType": "PASTE_NORMAL" } } ] }
ใช้สูตรซ้ำในหลายช่วง
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.batchUpdate
แสดงวิธีใช้ RepeatCellRequest
เพื่อคัดลอกสูตร =FLOOR(A1*PI())
ไปยังช่วง B1:D10 ช่วงของสูตรจะเพิ่มขึ้นสำหรับแต่ละแถวและคอลัมน์ในช่วงโดยอัตโนมัติ โดยเริ่มจากเซลล์ซ้ายบน เช่น เซลล์ B1 มีสูตร =FLOOR(A1*PI())
ส่วนเซลล์ D6 มีสูตร =FLOOR(C6*PI())
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"repeatCell": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 1,
"endColumnIndex": 4
},
"cell": {
"userEnteredValue": {
"formulaValue": "=FLOOR(A1*PI())"
}
},
"fields": "userEnteredValue"
}
}
]
}
จัดเรียงช่วงด้วยข้อกำหนดการจัดเรียงหลายรายการ
ตัวอย่างโค้ดต่อไปนี้
spreadsheets.batchUpdate
แสดงวิธีใช้ SortRangeRequest
เพื่อจัดเรียงช่วง A1:D10 โดยเริ่มจากคอลัมน์ B ตามลําดับจากน้อยไปมาก จากนั้นจัดเรียงคอลัมน์ C ตามลําดับจากมากไปน้อย แล้วจัดเรียงคอลัมน์ D ตามลําดับจากมากไปน้อย
โปรโตคอลคำขอแสดงอยู่ด้านล่าง
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
:batchUpdate
{
"requests": [
{
"sortRange": {
"range": {
"sheetId": SHEET_ID
,
"startRowIndex": 0,
"endRowIndex": 10,
"startColumnIndex": 0,
"endColumnIndex": 4
},
"sortSpecs": [
{
"dimensionIndex": 1,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 2,
"sortOrder": "DESCENDING"
},
{
"dimensionIndex": 3,
"sortOrder": "DESCENDING"
}
]
}
}
]
}