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

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

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

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

ในตัวอย่างเหล่านี้ ตัวยึดตำแหน่ง SPREADSHEET_ID และ SHEET_ID จะระบุตำแหน่งที่คุณจะระบุรหัสเหล่านั้น คุณจะพบรหัสของสเปรดชีต 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 จะปรับพร็อพเพอร์ตี้ของชีตเพื่อให้แถวส่วนหัวตรึงอยู่

ตาราง 3x3 ที่มีแถวส่วนหัวที่จัดรูปแบบในชีต
รูปที่ 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 โดยเว้นแถวไว้

ตาราง 3x3 ที่มีเซลล์ที่ผสานในชีต
รูปที่ 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 จะกำหนดรูปแบบตัวเลขที่กำหนดเอง #,##0.0000 ให้กับเซลล์ในช่วง B1:B10 ซึ่งระบุว่าควรจัดกลุ่มตัวเลขโดยใช้เครื่องหมายคอมมาเป็นตัวคั่น ควรมีตัวเลข 4 หลักหลังจุดทศนิยม และควรนำเลข 0 ที่นำหน้าออกทั้งหมด ยกเว้นเลข 0 ตัวแรก เช่น ตัวเลข "3.14" จะแสดงเป็น "3.1400" ส่วน "12345.12345" จะแสดงเป็น "12,345.1235"

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และตัวเลข รูปแบบ

ตาราง 3x3 ที่มีรูปแบบวันที่เวลาและตัวเลขที่กำหนดเองในชีต
รูปที่ 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"
      }
    }
  ]
}