يمكن أن تحتوي جداول البيانات على أوراق متعددة، ويمكن أن تحتوي كل ورقة على أي عدد من الصفوف أو الأعمدة. الخلية هي موضع
عند تقاطع صف وعمود معيّنَين، وقد تحتوي على قيمة بيانات. توفّر Google Sheets API مورد
spreadsheets.values
لإتاحة قراءة القيم وكتابتها.
توضّح هذه الصفحة أساسيات استخدام المورد spreadsheets.values
. إذا كنت بحاجة إلى إدراج صفوف أو تعديل التنسيق والخصائص الأخرى في ورقة، عليك استخدام طريقة spreadsheets.batchUpdate
الموضّحة في تعديل جداول البيانات.
الطُرق
يتيح العنصر
spreadsheets.values
الطرق التالية لقراءة القيم وكتابتها، وكل طريقة مخصّصة
لمهمة معيّنة:
الوصول إلى النطاق | القراءة | الكتابة |
---|---|---|
نطاق واحد | spreadsheets.values.get |
spreadsheets.values.update |
نطاقات متعدّدة | spreadsheets.values.batchGet |
spreadsheets.values.batchUpdate |
الإلحاق | spreadsheets.values.append |
بشكل عام، من المستحسن دمج عمليات قراءة أو تعديل متعددة باستخدام الطريقتَين batchGet
وbatchUpdate
(على التوالي)، لأنّ ذلك يحسّن الكفاءة.
يمكنك العثور على أمثلة لكل طريقة من هذه الطرق في صفحتَي عينات القراءة الأساسية وعينات الكتابة الأساسية. للاطّلاع على جميع العيّنات، يُرجى الرجوع إلى صفحة النظرة العامة حول العيّنات.
قراءة
لقراءة قيم البيانات من ورقة، يجب توفير رقم تعريف جدول البيانات وتنسيق A1 للنطاق. يؤدي تحديد النطاق بدون معرّف ورقة البيانات (A1:B2
) إلى تنفيذ الطلب على ورقة البيانات الأولى في جدول البيانات. لمزيد من المعلومات حول أرقام تعريف جداول البيانات وتنسيق A1، يُرجى الاطّلاع على نظرة عامة على واجهة برمجة تطبيقات "جداول بيانات Google".
تتحكّم عدّة معلَمات طلب بحث اختيارية في تنسيق الناتج:
مَعلمة التنسيق | القيمة التلقائية |
---|---|
majorDimension |
ROWS |
valueRenderOption |
FORMATTED_VALUE |
dateTimeRenderOption |
SERIAL_NUMBER |
يُرجى العلم أنّه يجب استخدام dateTimeRenderOption
فقط إذا لم يكن valueRenderOption
FORMATTED_VALUE
.
لا يوجد حدّ أقصى صريح لمقدار البيانات التي يتم عرضها. لا تعرض الأخطاء أي بيانات. يتم حذف الصفوف والأعمدة الفارغة الأخيرة.
في ما يلي وصف لطريقتَي الحصول على البيانات الفردية والدفعات. للاطّلاع على أمثلة على عمليات القراءة الأساسية، راجِع القراءة الأساسية.
قراءة نطاق واحد
لقراءة نطاق واحد من القيم من جدول بيانات، استخدِم طلب
spreadsheets.values.get
:
برمجة تطبيقات
Java
JavaScript
Node.js
PHP
Python
Ruby
يتم عرض الردّ على هذا الطلب كعنصر
ValueRange
.
قراءة نطاقات متعدّدة
لقراءة نطاقات متعدّدة وغير متجاورة من القيم من جدول بيانات، استخدِم طلب spreadsheets.values.batchGet
يتيح لك تحديد عدة نطاقات لاستردادها:
برمجة تطبيقات
Java
JavaScript
Node.js
PHP
Python
Ruby
يتم عرض الردّ على هذا الطلب ككائن
BatchGetValuesResponse
يحتوي على spreadsheetId
وقائمة بكائنات
ValueRange
.
كتابة
للكتابة في ورقة، تحتاج إلى معرّف جدول البيانات ونطاق الخلايا بتنسيق A1 والبيانات التي تريد كتابتها ضمن عنصر مناسب في نص الطلب. لمزيد من المعلومات حول أرقام تعريف جداول البيانات وتنسيق A1، يُرجى الاطّلاع على نظرة عامة على واجهة برمجة تطبيقات "جداول بيانات Google".
تتطلّب عمليات التعديل مَعلمة ValueInputOption
صالحة.
هذه مَعلمة مطلوبة في طلب البحث عند إجراء تحديثات فردية. بالنسبة إلى التعديلات المجمّعة،
هذه المَعلمة مطلوبة في نص الطلب. تتحكّم ValueInputOption
في طريقة تفسير بيانات الإدخال وما إذا كان سيتم تحليل سلاسل الإدخال أم لا، كما هو موضّح في الجدول التالي:
ValueInputOption |
الوصف |
---|---|
RAW |
لا يتم تحليل الإدخال ويتم إدراجه كسلسلة. على سبيل المثال، يؤدي الإدخال "=1+2" إلى وضع السلسلة "=1+2" في الخلية، وليس الصيغة. (يتم دائمًا التعامل مع القيم غير السلسلة، مثل القيم المنطقية أو الأرقام، على أنّها RAW ). |
USER_ENTERED |
يتم تحليل الإدخال تمامًا كما لو تم إدخاله في واجهة مستخدم "جداول بيانات Google". على سبيل المثال، يتحوّل "1 مارس 2016" إلى تاريخ، ويتحوّل "=1+2" إلى صيغة. يمكن أيضًا استنتاج التنسيقات، لذا يصبح "100.15 دولار أمريكي" رقمًا بتنسيق العملة. |
في ما يلي وصف لطريقتَي التعديل الفردي والتعديل المجمّع. للاطّلاع على أمثلة على عمليات الكتابة الأساسية، راجِع الكتابة الأساسية.
الكتابة في نطاق واحد
لكتابة البيانات في نطاق واحد، استخدِم طلب spreadsheets.values.update
:
برمجة تطبيقات
Java
JavaScript
Node.js
PHP
Python
Ruby
يجب أن يكون نص طلب التعديل كائن ValueRange
، مع العلم أنّ الحقل المطلوب الوحيد هو values
. في حال تحديد range
، يجب أن يتطابق مع النطاق في عنوان URL. في ValueRange
، يمكنك اختياريًا تحديد
majorDimension
.
يتم استخدام ROWS
تلقائيًا. في حال تحديد COLUMNS
، تتم كتابة كل مصفوفة داخلية في عمود بدلاً من صف.
عند التعديل، يتم تخطّي القيم التي لا تتضمّن بيانات. لمحو البيانات، استخدِم سلسلة فارغة ("").
كتابة نطاقات متعدّدة
إذا أردت كتابة نطاقات متعددة غير متجاورة، يمكنك استخدام طلب
spreadsheets.values.batchUpdate
:
برمجة تطبيقات
Java
JavaScript
Node.js
PHP
Python
Ruby
يجب أن يكون نص طلب التعديل المجمّع عبارة عن كائن
BatchUpdateValuesRequest
يحتوي على ValueInputOption
وقائمة بكائنات
ValueRange
(واحد لكل نطاق مكتوب). يحدّد كل عنصر ValueRange
range
وmajorDimension
وبيانات الإدخال الخاصة به.
إلحاق القيم
لإلحاق البيانات بعد جدول بيانات في ورقة، استخدِم طلب spreadsheets.values.append
:
برمجة تطبيقات
Java
JavaScript
Node.js
PHP
Python
Ruby
يجب أن يكون نص طلب التعديل كائن ValueRange
، مع العلم أنّ الحقل المطلوب الوحيد هو values
. في حال تحديد range
، يجب أن يتطابق مع النطاق في عنوان URL. في ValueRange
، يمكنك اختياريًا تحديد
majorDimension
.
يتم استخدام ROWS
تلقائيًا. في حال تحديد COLUMNS
، تتم كتابة كل مصفوفة داخلية في عمود بدلاً من صف.
يُستخدَم نطاق الإدخال للبحث عن البيانات الحالية والعثور على "جدول" ضمن هذا النطاق. تتم إضافة القيم إلى الصف التالي في الجدول، بدءًا من العمود الأول في الجدول. على سبيل المثال، ضع في اعتبارك Sheet1
الذي يبدو على النحو التالي:
A | ب | C | D | E | |
1 | x | y | z | ||
2 | x | y | z | ||
3 | |||||
4 | x | y | |||
5 | y | z | |||
6 | x | y | z | ||
7 |
يتضمّن جدول البيانات جدولَين: A1:C2
وB4:D6
. ستبدأ القيم الملحقة عند B7
لجميع مدخلات range
التالية:
Sheet1
، لأنّها ستفحص جميع البيانات في ورقة البيانات وتحدّد أنّ الجدول فيB4:D6
هو الجدول الأخير.B4
أوC5:D5
، لأنّ كلاهما في الجدولB4:D6
-
B2:D4
، لأنّ الجدول الأخير في النطاق هو الجدولB4:D6
(على الرغم من أنّه يتضمّن أيضًا الجدولA1:C2
). -
A3:G10
، لأنّ الجدول الأخير في النطاق هو الجدولB4:D6
(على الرغم من أنّه يبدأ قبل الجدولB4:D6
وينتهي بعده).
لن تبدأ كتابة إدخالات range
التالية في B7
:
- سيبدأ
A1
الكتابة فيA3
، لأنّ ذلك في جدولA1:C2
. - ستبدأ "
E4
" الكتابة فيE4
لأنّها ليست في أي جدول. (سيبدأA4
أيضًا الكتابة فيA4
للأسباب نفسها).
بالإضافة إلى ذلك، يمكنك اختيار ما إذا كنت تريد استبدال البيانات الحالية بعد جدول أو إدراج صفوف جديدة للبيانات الجديدة. بشكل تلقائي، تستبدل البيانات المُدخَلة البيانات
بعد الجدول. لكتابة البيانات الجديدة في صفوف جديدة، استخدِم
InsertDataOption
وحدِّد insertDataOption=INSERT_ROWS
.
لمزيد من المعلومات عن الحدود القصوى للخلايا والصفوف في "جداول بيانات Google"، يُرجى الاطّلاع على الملفات التي يمكنك تخزينها في Google Drive.