การจัดรูปแบบพื้นฐาน

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

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

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

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

ในวิดีโอด้านบน คุณจะได้เรียนรู้วิธีจัดรูปแบบเซลล์ของสเปรดชีตด้วยวิธีต่างๆ ได้แก่ การสร้างแถวที่ตรึงไว้ การทำเซลล์เป็นตัวหนา การใช้การจัดรูปแบบสกุลเงิน การตรวจสอบเซลล์ และการจำกัดค่าของเซลล์

แก้ไขเส้นขอบของเซลล์

ตัวอย่างโค้ด spreadsheets.batchUpdate ต่อไปนี้แสดงวิธีใช้ UpdateBordersRequest เพื่อกำหนดให้แต่ละเซลล์ในช่วง A1:F10 มีเส้นขอบเป็นเส้นประสีน้ำเงินด้านบนและด้านล่าง ช่อง innerHorizontal สร้างเส้นขอบแนวนอนที่ภายในของช่วง การข้ามช่องนี้จะส่งผลให้มีการเพิ่มเส้นขอบที่ด้านบนสุดและด้านล่างของทั้งช่วงเท่านั้น

ตารางแบบ 3x3 โดยแต่ละเซลล์มีขอบที่เป็นเส้นประสีน้ำเงินด้านบนและด้านล่าง
รูปที่ 1. จัดรูปแบบแต่ละเซลล์ให้มีเส้นขอบประสีน้ำเงินด้านบนและด้านล่างในชีต

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "updateBorders": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 6
        },
        "top": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "bottom": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
        "innerHorizontal": {
          "style": "DASHED",
          "width": 1,
          "color": {
            "blue": 1.0
          },
        },
      }
    }
  ]
}

จัดรูปแบบแถวส่วนหัว

ตัวอย่างโค้ด spreadsheets.batchUpdate ต่อไปนี้จะแสดงวิธีใช้ RepeatCellRequest เพื่อจัดรูปแบบแถวส่วนหัวในชีต คำขอแรกจะอัปเดตสีข้อความ สีพื้นหลัง ขนาดแบบอักษรของข้อความ และเหตุผลรองรับข้อความ และทำให้ข้อความเป็นตัวหนา การละเว้นดัชนีคอลัมน์ในช่อง range จะทำให้ระบบจัดรูปแบบทั้งแถว คำขอที่ 2 จะปรับคุณสมบัติของชีตเพื่อให้แถวส่วนหัวถูกตรึงไว้

ตาราง 3 x 3 ซึ่งมีแถวส่วนหัวที่จัดรูปแบบในชีต
รูปที่ 2 จัดรูปแบบแถวส่วนหัวในชีต

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "backgroundColor": {
              "red": 0.0,
              "green": 0.0,
              "blue": 0.0
            },
            "horizontalAlignment" : "CENTER",
            "textFormat": {
              "foregroundColor": {
                "red": 1.0,
                "green": 1.0,
                "blue": 1.0
              },
              "fontSize": 12,
              "bold": true
            }
          }
        },
        "fields": "userEnteredFormat(backgroundColor,textFormat,horizontalAlignment)"
      }
    },
    {
      "updateSheetProperties": {
        "properties": {
          "sheetId": SHEET_ID,
          "gridProperties": {
            "frozenRowCount": 1
          }
        },
        "fields": "gridProperties.frozenRowCount"
      }
    }
  ]
}

ผสานเซลล์

ตัวอย่างโค้ด spreadsheets.batchUpdate ต่อไปนี้จะแสดงวิธีใช้ MergeCellsRequest เพื่อผสานเซลล์ คำขอแรกจะรวมช่วง A1:B2 ไว้ในเซลล์เดียว คำขอที่ 2 จะรวมคอลัมน์ใน A3:B6 โดยแยกแถวออกจากกัน

ตาราง 3 x 3 พร้อมเซลล์ที่ผสานในชีต
รูปที่ 3 ผสานเซลล์ในชีต

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 2,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_ALL"
      }
    },
    {
      "mergeCells": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 2,
          "endRowIndex": 6,
          "startColumnIndex": 0,
          "endColumnIndex": 2
        },
        "mergeType": "MERGE_COLUMNS"
      }
    },
  ]
}

ตั้งค่ารูปแบบวันที่และเวลาที่กำหนดเองสำหรับช่วงทศนิยม

ตัวอย่างโค้ด spreadsheets.batchUpdate ต่อไปนี้แสดงวิธีใช้ RepeatCellRequest เพื่ออัปเดตเซลล์ให้มีรูปแบบวันที่และเวลาและตัวเลขที่กำหนดเอง คำขอแรกจะให้รูปแบบ hh:mm:ss am/pm, ddd mmm dd yyyy ของวันที่และเวลาที่กำหนดเองให้กับเซลล์ในช่วง A1:A10 ตัวอย่างวันที่และเวลาในรูปแบบนี้ ได้แก่ "02:05:07 PM, Sun Apr 03 2016"

คำขอที่ 2 จะให้รูปแบบตัวเลขที่กำหนดเองในเซลล์ใน B1:B10 #,##0.0000 ซึ่งระบุว่าควรจัดกลุ่มตัวเลขด้วยเครื่องหมายคั่นแต่ละรายการ ควรมี 4 หลักตามหลังทศนิยม และควรทิ้งเลขศูนย์นำหน้าทั้งหมด 1 ตัวเท่านั้น ตัวอย่างเช่น ตัวเลข "3.14" จะแสดงผลเป็น "3.1400" ขณะที่ "12345.12345" จะแสดงผลเป็น "12,345.1235"

ตารางแบบ 3 x 3 พร้อมวันที่และเวลาที่กำหนดเองและรูปแบบตัวเลขในชีต
รูปที่ 4 อัปเดตเซลล์ให้มีรูปแบบวันที่และเวลาที่กำหนดเองในชีต

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

POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID:batchUpdate
{
  "requests": [
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 0,
          "endColumnIndex": 1
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "DATE",
              "pattern": "hh:mm:ss am/pm, ddd mmm dd yyyy"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    },
    {
      "repeatCell": {
        "range": {
          "sheetId": SHEET_ID,
          "startRowIndex": 0,
          "endRowIndex": 10,
          "startColumnIndex": 1,
          "endColumnIndex": 2
        },
        "cell": {
          "userEnteredFormat": {
            "numberFormat": {
              "type": "NUMBER",
              "pattern": "#,##0.0000"
            }
          }
        },
        "fields": "userEnteredFormat.numberFormat"
      }
    }
  ]
}