تسمح لك Google Sheets API بكتابة القيم والمعادلات إلى الخلايا والنطاقات
ومجموعات النطاقات والأوراق الكاملة. توضح الأمثلة في هذه الصفحة كيف أن بعض
يمكن تحقيق عمليات الكتابة المشتركة باستخدام
spreadsheets.values
الخاص بـ Sheets API.
لاحظ أنه من الممكن أيضًا كتابة قيم الخلايا باستخدام
spreadsheet.batchUpdate
والتي يمكن أن تكون مفيدة إذا كنت تريد تعديل تنسيق الخلية في آنٍ واحد
أو الخصائص الأخرى التي
spreadsheets.values
لا يؤثر ذلك المورد. على سبيل المثال، إذا كنت تريد نسخ نطاق من الخلايا من
ورقة إلى أخرى أثناء الكتابة فوق كل من معادلة الخلية والخلية
والتنسيق، يمكنك استخدام
UpdateCellsRequest
باستخدام a
spreadsheet.batchUpdate
ومع ذلك، بالنسبة إلى كتابة القيمة البسيطة، يكون من الأسهل استخدام دالة الرسم
spreadsheets.values.update
الطريقة أو
spreadsheets.values.batchUpdate
.
يتم تقديم هذه الأمثلة في شكل طلبات HTTP لتكون اللغة محايدة. لمعرفة كيفية تنفيذ الكتابة بلغات مختلفة باستخدام مكتبات عملاء واجهة Google API، راجع قراءة كتابة الخلية .
في هذه الأمثلة، يشير العنصر النائب SPREADSHEET_ID
حيث ستقدم جدول البيانات
المعرّف، الذي يمكن اكتشافه من
عنوان URL لجدول البيانات. يتم تحديد النطاقات المطلوب الكتابة إليها باستخدام A1
. مثال على النطاق هو Sheet1!A1:D5.
كتابة نطاق واحد
بدءًا بجدول بيانات جديد وفارغ، ما يلي
spreadsheets.values.update
نموذج التعليمات البرمجية كيفية كتابة القيم في نطاق. تشير رسالة الأشكال البيانية
طلب بحث 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,
}
تظهر ورقة البيانات الناتجة على النحو التالي:
A | ب | C | D | |
1 | المنتج/الخدمة | التكلفة | مخزن | تاريخ الشحن |
2 | العجلة | 20.50 دولار أمريكي | 4 | 2016/3/1 |
3 | باب | $15 | 2 | 2016/3/15 |
4 | المحرك | $100 | 1 | 2016/3/20 |
5 | مجاميع | 135.5 دولار أمريكي | 7 | 2016/3/20 |
الكتابة بشكل انتقائي في نطاق
يمكن عند كتابة القيم في نطاق تجنب تغيير بعض القيم
الخلايا عن طريق ضبط عناصر الصفيف المقابلة على null
. من الممكن أيضًا
لمحو خلية عن طريق كتابة سلسلة فارغة (""
) إليها.
البدء بورقة تحتوي على نفس البيانات التي أنشأها أعلاه
مثال، ما يلي
spreadsheets.values.update
نموذج التعليمات البرمجية يعرض كيفية كتابة القيم في النطاق B1:D4 بشكل انتقائي
مع ترك بعض الخلايا بدون تغيير ومحو بعضها الآخر. تشير رسالة الأشكال البيانية
طلب بحث 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,
}
تظهر ورقة البيانات الناتجة على النحو التالي:
A | ب | C | D | |
1 | المنتج/الخدمة | التكلفة | مخزن | تاريخ الشحن |
2 | العجلة | $1,00 | 4 | 1/4/2016 |
3 | باب | 2 دولار أميركي (أو ما يعادلهما بالعملة المحلية) | 2 | 2016/4/15 |
4 | المحرك | 1 | ||
5 | مجاميع | $3,00 | 7 | 2016/4/15 |
لاحظ أن "الإجماليات" ، بينما لم يتم تغييره مباشرةً من خلال هذا الطلب، يتغير لأن خلاياها تحتوي على معادلات تعتمد على الخلايا التي تم تغييرها.
الكتابة في نطاقات متعددة
بدءًا بورقة فارغة، ما يلي
spreadsheets.values.batchUpdate
عينة التعليمات البرمجية كيفية كتابة القيم إلى النطاقات Sheet1!A1:A4
الورقة1!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, } ], }
تظهر ورقة البيانات الناتجة على النحو التالي:
A | ب | C | D | |
1 | المنتج/الخدمة | التكلفة | مخزن | تاريخ الشحن |
2 | العجلة | 20.50 دولار أمريكي | 4 | 2016/3/1 |
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,
}
تظهر ورقة البيانات الناتجة على النحو التالي:
A | ب | C | D | E | |
1 | البيانات | 123.45 | صواب | =MAX(D2:D4) | 10 |
2 |
لاحظ أن "TRUE" يتم توسيطها وتكون قيمة منطقية، في حين أن "123.45" صحيح لأنه رقم، و"10" يُعد مبررًا لأنه سلسلة. لا يتم تحليل الصيغة، وتظهر أيضًا كسلسلة.
إلحاق القيم
ابدأ بورقة مثل الجدول أدناه:
A | ب | C | D | |
1 | المنتج/الخدمة | التكلفة | مخزن | تاريخ الشحن |
2 | العجلة | 20.50 دولار أمريكي | 4 | 2016/3/1 |
3 |
ما يلي:
spreadsheets.values.append
يعرض نموذج التعليمات البرمجية كيفية إضافة صفين جديدين من القيم بدءًا من الصف 3. تشير رسالة الأشكال البيانية
طلب بحث 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, } }
تظهر ورقة البيانات الناتجة على النحو التالي:
A | ب | C | D | |
1 | المنتج/الخدمة | التكلفة | مخزن | تاريخ الشحن |
2 | العجلة | 20.50 دولار أمريكي | 4 | 2016/3/1 |
3 | باب | $15 | 2 | 2016/3/15 |
4 | المحرك | $100 | 1 | 2016/3/20 |
5 |