การดําเนินการของชีต

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

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

ในตัวอย่างต่อไปนี้ ตัวยึดตำแหน่ง SPREADSHEET_ID และ SHEET_ID จะระบุตําแหน่งที่คุณจะส่งรหัสเหล่านั้น คุณจะพบสเปรดชีต รหัสใน URL ของสเปรดชีต คุณสามารถ รหัสชีตโดยใช้เมธอด spreadsheets.get มีการระบุช่วงโดยใช้รูปแบบ A1 CANNOT TRANSLATE ช่วงตัวอย่างคือ Sheet1!A1:D5

เพิ่มชีต

ดังต่อไปนี้ spreadsheets.batchUpdate ตัวอย่างโค้ดจะแสดงวิธีใช้ AddSheetRequest เพื่อเพิ่มแผ่นงานไปยังสเปรดชีต พร้อมทั้งตั้งชื่อ ขนาดตารางกริด และ สีแท็บ

คำตอบจะประกอบด้วย AddSheetResponse ซึ่งมีออบเจ็กต์ที่มีคุณสมบัติของชีตที่สร้างขึ้น (เช่น SHEET_ID)

โปรโตคอลคำขอแสดงอยู่ด้านล่างนี้

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "addSheet": {
        "properties": {
          "title": "Deposits",
          "gridProperties": {
            "rowCount": 20,
            "columnCount": 12
          },
          "tabColor": {
            "red": 1.0,
            "green": 0.3,
            "blue": 0.4
          }
        }
      }
    }
  ]
}

ล้างชีตของค่าทั้งหมดขณะคงรูปแบบไว้

ดังต่อไปนี้ spreadsheets.batchUpdate ตัวอย่างโค้ดจะแสดงวิธีใช้ UpdateCellsRequest เพื่อนำค่าทั้งหมดออกจากชีตโดยไม่เปลี่ยนแปลงการจัดรูปแบบ

การระบุฟิลด์ ช่อง userEnteredValue หากไม่มีค่าที่ตรงกัน ระบบจะตีความว่าเป็นวิธีการล้างค่า ในช่วงนั้น การตั้งค่านี้จะใช้กับช่องอื่นๆ ได้เช่นกัน ตัวอย่างเช่น กำลังเปลี่ยนค่า fields เป็น userEnteredFormat นำออก การจัดรูปแบบทั้งหมดที่ Sheets API รองรับ จากชีต แต่ไม่เปลี่ยนแปลงค่าของเซลล์

โปรโตคอลคำขอแสดงอยู่ด้านล่างนี้

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateCells": {
        "range": {
          "sheetId": SHEET_ID
        },
        "fields": "userEnteredValue"
      }
    }
  ]
}

คัดลอกแผ่นงานจากสเปรดชีตหนึ่งไปยังอีกสเปรดชีตหนึ่ง

ดังต่อไปนี้ spreadsheet.sheets.copyTo ตัวอย่างโค้ดแสดงวิธีคัดลอกชีตเดียวที่ระบุโดย SHEET_ID จากสเปรดชีตหนึ่งไปยังอีกสเปรดชีตหนึ่ง

ตัวแปร TARGET_SPREADSHEET_ID ในเนื้อหาคำขอระบุ ปลายทาง สำเนาจะเก็บรักษาค่า การจัดรูปแบบ สูตร และ คุณสมบัติอื่นๆ ของต้นฉบับ ตั้งชื่อชีตที่คัดลอกเป็น "คัดลอก [ชื่อแผ่นงานต้นฉบับ]"

คำตอบจะประกอบด้วย SheetProperties ที่อธิบายคุณสมบัติของชีตที่สร้างขึ้น

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/sheets/SHEET_ID:copyTo
{
  "destinationSpreadsheetId": "TARGET_SPREADSHEET_ID"
}

ลบชีต

ดังต่อไปนี้ spreadsheets.batchUpdate ตัวอย่างโค้ดจะแสดงวิธีใช้ DeleteSheetRequest เพื่อลบชีตที่ระบุโดย SHEET_ID

โปรโตคอลคำขอแสดงอยู่ด้านล่างนี้

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "deleteSheet": {
        "sheetId": SHEET_ID
      }
    }
  ]
}

อ่านข้อมูลชีต

ดังต่อไปนี้ ตัวอย่างโค้ด spreadsheets.get แสดงวิธีรับข้อมูลพร็อพเพอร์ตี้ sheet จากสเปรดชีตที่ระบุโดย SHEET_ID และ SPREADSHEET_ID วิธีการนี้มักใช้เพื่อระบุ ของชีตภายในสเปรดชีตที่ระบุ เพื่อให้การดำเนินการเพิ่มเติม กำหนดเป้าหมายชีตเหล่านั้น พารามิเตอร์การค้นหา fields ระบุเฉพาะพร็อพเพอร์ตี้ชีต ข้อมูลควรส่งคืน (ไม่ใช่ข้อมูลค่าเซลล์หรือข้อมูลที่เกี่ยวข้องกับ ทั้งสเปรดชีต)

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?&fields=sheets.properties

คำตอบจะประกอบด้วย Spreadsheet ซึ่งมี Sheet ออบเจ็กต์ที่มี SheetProperties จากองค์ประกอบเหล่านี้ หากตั้งค่าช่องคำตอบให้เป็นค่าเริ่มต้น ช่องคำตอบดังกล่าวจะถูกละไว้ จากคำตอบ

{
  "sheets": [
    {
      "properties": {
        "sheetId": SHEET_ID,
        "title": "Sheet1",
        "index": 0,
        "sheetType": "GRID",
        "gridProperties": {
          "rowCount": 100,
          "columnCount": 20,
          "frozenRowCount": 1
        }
        "tabColor": {
          "blue": 1.0
        }
      },
      ...
  ],
}