การดําเนินการกับข้อมูล

Google Sheets API ช่วยให้คุณสามารถจัดการข้อมูลภายในสเปรดชีตใน ได้ ฟังก์ชันส่วนใหญ่ที่พร้อมใช้งานสำหรับผู้ใช้ที่ใช้งาน UI ของชีตยังสามารถดำเนินการกับ Sheets API ตัวอย่างในหน้านี้จะแสดงให้เห็นวิธีบรรลุเป้าหมาย การทำงานทั่วไปของสเปรดชีตกับ Sheets API

ตัวอย่างเหล่านี้จะแสดงในรูปแบบคำขอ HTTP เป็นภาษา เป็นกลาง หากต้องการทราบวิธีใช้การอัปเดตเป็นกลุ่มในภาษาต่างๆ โดยใช้ ไลบรารีของไคลเอ็นต์ Google API โปรดดูการอัปเดต สเปรดชีต

ในตัวอย่างต่อไปนี้ ตัวยึดตำแหน่ง SPREADSHEET_ID และ SHEET_ID จะระบุตําแหน่งที่คุณจะส่งรหัสเหล่านั้น คุณจะพบสเปรดชีต รหัสใน URL ของสเปรดชีต คุณสามารถ รหัสชีตโดยใช้เมธอด spreadsheets.get มีการระบุช่วงโดยใช้รูปแบบ A1 CANNOT TRANSLATE ช่วงตัวอย่างคือ 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 ไว้ในชีตเดียวกัน เมธอดจะใช้เมธอด PasteType enum ด้วย 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"
          }
        ]
      }
    }
  ]
}