Google Sheets API ให้คุณจัดการข้อมูลภายในสเปรดชีตได้หลายวิธี ฟังก์ชันการทำงานส่วนใหญ่ที่ใช้ได้กับผู้ใช้ที่ทำงานด้วย UI ของชีตก็จะทำได้โดยใช้ Sheets API ตัวอย่างในหน้านี้จะแสดงวิธีที่คุณสามารถใช้ชีต 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 และใช้ Enum PasteType
ที่มี 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"
}
]
}
}
]
}