Google Sheets API به شما امکان میدهد مقادیر و فرمولها را در سلولها، محدودهها، مجموعههایی از محدودهها و کل برگهها بنویسید. مثالهای موجود در این صفحه نشان میدهند که چگونه میتوان به برخی از عملیات نوشتن رایج با منبع spreadsheets.values
Sheets API دست یافت.
توجه داشته باشید که نوشتن مقادیر سلول با استفاده از روش spreadsheet.batchUpdate
نیز امکان پذیر است، که می تواند مفید باشد اگر بخواهید به طور همزمان قالب بندی سلول یا سایر ویژگی هایی را که منبع spreadsheets.values
بر آنها تأثیر نمی گذارد به روز کنید. برای مثال، اگر میخواهید در حین بازنویسی فرمول سلول و قالببندی سلول، طیفی از سلولها را از یک صفحه به صفحه دیگر کپی کنید، میتوانید از روش UpdateCellsRequest
با یک spreadsheet.batchUpdate
استفاده کنید.
با این حال، برای نوشتن مقادیر ساده، استفاده از روش spreadsheets.values.update
یا روش spreadsheets.values.batchUpdate
آسان تر است.
این نمونه ها در قالب درخواست های HTTP برای خنثی بودن زبان ارائه شده اند. برای یادگیری نحوه پیادهسازی نوشتهها به زبانهای مختلف با استفاده از کتابخانههای سرویس گیرنده Google API، به خواندن و نوشتن مقادیر سلول مراجعه کنید.
در این مثالها، مکان نگهدار SPREADSHEET_ID
نشان میدهد که در کجا شناسه صفحهگسترده را ارائه میکنید، که میتوان آن را از URL صفحهگسترده کشف کرد. محدوده هایی برای نوشتن با استفاده از نماد A1 مشخص می شود. محدوده نمونه Sheet1!A1:D5 است.
یک محدوده بنویسید
با شروع یک صفحه گسترده جدید و خالی، نمونه کد spreadsheets.values.update
زیر نحوه نوشتن مقادیر را در یک محدوده نشان می دهد. پارامتر Query ValueInputOption
مورد نیاز است و تعیین می کند که آیا مقادیر نوشته شده تجزیه می شوند (به عنوان مثال، آیا یک رشته به تاریخ تبدیل می شود یا خیر).
بدنه درخواست یک شی ValueRange
است که مقادیر محدوده را برای نوشتن توصیف می کند. فیلد majorDimension
نشان می دهد که آرایه ها لیستی از مقادیر هستند که توسط ردیف ها سازماندهی شده اند. مقادیر موجود در محدوده هدف بازنویسی می شوند.
پروتکل درخواست در زیر نشان داده شده است.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:D5?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:D5", "majorDimension": "ROWS", "values": [ ["Item", "Cost", "Stocked", "Ship Date"], ["Wheel", "$20.50", "4", "3/1/2016"], ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"] ], }
پاسخ شامل یک شی UpdateValuesResponse
است، مانند این:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:D5",
"updatedRows": 5,
"updatedColumns": 4,
"updatedCells": 20,
}
ورق به دست آمده به شکل زیر است:
الف | ب | سی | D | |
1 | مورد | هزینه | انبار شده | تاریخ ارسال |
2 | چرخ | 20.50 دلار | 4 | 3/1/2016 |
3 | درب | 15 دلار | 2 | 1395/3/15 |
4 | موتور | 100 دلار | 1 | 2016/3/20 |
5 | مجموع | 135.5 دلار | 7 | 2016/3/20 |
به صورت انتخابی در یک محدوده بنویسید
این امکان وجود دارد که هنگام نوشتن مقادیر در یک محدوده، از تغییر برخی سلول های موجود با تنظیم عناصر آرایه مربوطه بر روی null
جلوگیری کنید. همچنین می توان یک سلول را با نوشتن یک رشته خالی ( ""
) روی آن پاک کرد.
با شروع با برگهای حاوی همان دادههای تولید شده توسط مثال بالا ، نمونه کد spreadsheets.values.update
زیر نحوه نوشتن مقادیر در محدوده B1:D4 را نشان میدهد، بهطور انتخابی برخی سلولها را بدون تغییر باقی میگذارد و برخی دیگر را پاک میکند. پارامتر Query ValueInputOption
مورد نیاز است و تعیین می کند که آیا مقادیر نوشته شده تجزیه می شوند (به عنوان مثال، آیا یک رشته به تاریخ تبدیل می شود یا خیر).
بدنه درخواست یک شی ValueRange
است که مقادیر محدوده را برای نوشتن توصیف می کند. فیلد majorDimension
نشان می دهد که آرایه ها لیستی از مقادیر هستند که بر اساس ستون سازماندهی شده اند.
پروتکل درخواست در زیر نشان داده شده است.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!B1?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!B1", "majorDimension": "COLUMNS", "values": [ [null,"$1","$2", ""], [], [null,"4/1/2016", "4/15/2016", ""] ] }
فیلد values
در اینجا تغییرات ایجاد شده در هر ستون در محدوده را فهرست می کند. آرایه اول نشان می دهد که B1 باید بدون تغییر باقی بماند (به دلیل عنصر آرایه null
)، در حالی که B4 باید پاک شود (رشته خالی). B2 و B3 مقادیر خود را به روز می کنند. آرایه سوم همان عملیات را روی ستون D انجام می دهد، در حالی که دومین آرایه خالی نشان می دهد که ستون C باید بدون تغییر باقی بماند.
پاسخ شامل یک شی UpdateValuesResponse
مانند این است:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!B1:D5",
"updatedRows": 3,
"updatedColumns": 2,
"updatedCells": 6,
}
ورق به دست آمده به شکل زیر است:
الف | ب | سی | D | |
1 | مورد | هزینه | انبار شده | تاریخ ارسال |
2 | چرخ | 1.00 دلار | 4 | 4/1/2016 |
3 | درب | 2 دلار | 2 | 1395/4/15 |
4 | موتور | 1 | ||
5 | مجموع | 3.00 دلار | 7 | 1395/4/15 |
توجه داشته باشید که ردیف "Totals" اگرچه مستقیماً با این درخواست تغییر نمی کند، اما تغییر می کند زیرا سلول های آن حاوی فرمول هایی هستند که به سلول های تغییر یافته بستگی دارند.
در چندین محدوده بنویسید
با شروع با یک صفحه خالی، نمونه کد spreadsheets.values.batchUpdate
زیر نحوه نوشتن مقادیر در محدودههای Sheet1!A1:A4 و Sheet1!B1:D2 را نشان میدهد. مقادیر موجود در محدوده هدف بازنویسی می شوند. بدنه درخواست شامل یک شی ValueInputOption
است که نحوه تفسیر داده های ورودی و آرایه ای از اشیاء ValueRange
مربوط به هر محدوده نوشته شده را نشان می دهد. فیلد majorDimension
تعیین می کند که آیا آرایه های موجود به عنوان آرایه هایی از ستون ها یا ردیف ها تفسیر می شوند.
پروتکل درخواست در زیر نشان داده شده است.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values:batchUpdate
{ "valueInputOption": "VALUE_INPUT_OPTION", "data": [ { "range": "Sheet1!A1:A4", "majorDimension": "COLUMNS", "values": [ ["Item", "Wheel", "Door", "Engine"] ] }, { "range": "Sheet1!B1:D2", "majorDimension": "ROWS", "values": [ ["Cost", "Stocked", "Ship Date"], ["$20.50", "4", "3/1/2016"] ] } ] }
پاسخ شامل یک شی است که آمار سلول های به روز شده را فهرست می کند و آرایه ای از اشیاء UpdateValuesResponse
، یکی برای هر محدوده به روز شده. به عنوان مثال:
{ "spreadsheetId":SPREADSHEET_ID
, "totalUpdatedRows": 4, "totalUpdatedColumns": 4, "totalUpdatedCells": 10, "totalUpdatedSheets": 1, "responses": [ { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A1:A4", "updatedRows": 4, "updatedColumns": 1, "updatedCells": 4, }, { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!B1:D2", "updatedRows": 2, "updatedColumns": 3, "updatedCells": 6, } ], }
ورق به دست آمده به شکل زیر است:
الف | ب | سی | D | |
1 | مورد | هزینه | انبار شده | تاریخ ارسال |
2 | چرخ | 20.50 دلار | 4 | 3/1/2016 |
3 | درب | |||
4 | موتور | |||
5 |
مقادیر را بدون تجزیه بنویسید
با شروع با یک صفحه خالی، نمونه کد spreadsheets.values.update
زیر نحوه نوشتن مقادیر را در محدوده Sheet1!A1:E1 نشان می دهد، اما از پارامتر پرس و جو RAW
ValueInputOption
برای جلوگیری از تجزیه رشته های نوشته شده به عنوان فرمول، بولی استفاده می کند. یا اعداد آنها به عنوان رشته ظاهر می شوند و تراز متن در برگه توجیه می شود.
بدنه درخواست یک شی ValueRange
است که مقادیر محدوده را برای نوشتن توصیف می کند. فیلد majorDimension
نشان می دهد که آرایه ها لیستی از مقادیر هستند که توسط ردیف ها سازماندهی شده اند. مقادیر موجود در محدوده هدف بازنویسی می شوند.
پروتکل درخواست در زیر نشان داده شده است.
PUT https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1?valueInputOption=RAW
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Data", 123.45, true, "=MAX(D2:D4)", "10"] ], }
پاسخ شامل یک شی UpdateValuesResponse
مانند این است:
{
"spreadsheetId": SPREADSHEET_ID
,
"updatedRange": "Sheet1!A1:E1",
"updatedRows": 1,
"updatedColumns": 5,
"updatedCells": 5,
}
ورق به دست آمده به شکل زیر است:
الف | ب | سی | D | E | |
1 | داده ها | 123.45 | درست است | =MAX(D2:D4) | 10 |
2 |
توجه داشته باشید که "TRUE" در مرکز قرار دارد و یک مقدار بولی است، در حالی که "123.45" درست توجیه می شود زیرا یک عدد است، و "10" توجیه می شود زیرا یک رشته است. فرمول تجزیه نشده است و همچنین به عنوان یک رشته ظاهر می شود.
اضافه کردن مقادیر
با یک برگه مانند جدول زیر شروع کنید:
الف | ب | سی | D | |
1 | مورد | هزینه | انبار شده | تاریخ ارسال |
2 | چرخ | 20.50 دلار | 4 | 3/1/2016 |
3 |
نمونه کد spreadsheets.values.append
زیر نشان میدهد که چگونه میتوان دو ردیف جدید از مقادیر را که با سطر 3 شروع میشوند، اضافه کرد. پارامتر Query ValueInputOption
لازم است و تعیین میکند که آیا مقادیر نوشته شده تجزیه میشوند (به عنوان مثال، آیا یک رشته به یک رشته تبدیل میشود یا خیر. تاریخ).
بدنه درخواست یک شی ValueRange
است که مقادیر محدوده را برای نوشتن توصیف می کند. فیلد majorDimension
نشان می دهد که آرایه ها لیستی از مقادیر هستند که توسط ردیف ها سازماندهی شده اند.
پروتکل درخواست در زیر نشان داده شده است.
POST https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID
/values/Sheet1!A1:E1:append?valueInputOption=VALUE_INPUT_OPTION
{ "range": "Sheet1!A1:E1", "majorDimension": "ROWS", "values": [ ["Door", "$15", "2", "3/15/2016"], ["Engine", "$100", "1", "3/20/2016"], ], }
پاسخ شامل یک شی AppendValuesResponse
مانند این است:
{ "spreadsheetId":SPREADSHEET_ID
, "tableRange": "Sheet1!A1:D2", "updates": { "spreadsheetId":SPREADSHEET_ID
, "updatedRange": "Sheet1!A3:D4", "updatedRows": 2, "updatedColumns": 4, "updatedCells": 8, } }
ورق به دست آمده به شکل زیر است:
الف | ب | سی | D | |
1 | مورد | هزینه | انبار شده | تاریخ ارسال |
2 | چرخ | 20.50 دلار | 4 | 3/1/2016 |
3 | درب | 15 دلار | 2 | 1395/3/15 |
4 | موتور | 100 دلار | 1 | 2016/3/20 |
5 |