این سند در مورد استفاده از فیلترها برای مرتبسازی و فیلتر کردن دادههای نمایش داده شده در یک صفحه گسترده است.
فیلترها به شما امکان میدهند دادههایی را که هنگام مشاهده یک صفحه گسترده میبینید، مرتبسازی و فیلتر کنید. فیلترها مقادیر دادهها را در صفحه گسترده شما تغییر نمیدهند. میتوانید از فیلترها برای مخفی کردن یا مرتبسازی موقت اطلاعات استفاده کنید. دادههایی که با معیارهای فیلتر مشخص شده مطابقت دارند، در حالی که فیلتر فعال است، ظاهر نمیشوند. با استفاده از نماهای فیلتر ، میتوانید فیلترهای با نامهای مختلف را نیز ذخیره کنید و هر زمان که دوست داشتید بین آنها جابجا شوید.
برای فیلتر کردن دادههای برگردانده شده در یک درخواست API گوگل شیت، از شیء DataFilter استفاده کنید. برای اطلاعات بیشتر، به بخش خواندن، نوشتن و جستجوی فراداده مراجعه کنید.
موارد استفاده از فیلتر
در ادامه چند نمونه از کاربردهای فیلترها آمده است:
- مرتبسازی دادهها بر اساس یک ستون خاص. برای مثال، مرتبسازی رکوردهای کاربر بر اساس نام خانوادگی.
- دادههایی را که شرایط خاصی را برآورده میکنند، پنهان کنید. برای مثال، تمام رکوردهای قدیمیتر از دو سال را پنهان کنید.
- دادههایی را که با یک مقدار خاص مطابقت دارند پنهان کنید. برای مثال، تمام مسائلی را که وضعیت آنها "بسته" است، پنهان کنید.
فیلتر پایه
شیء BasicFilter برای یک صفحه گسترده، فیلتر پیشفرضی است که هر زمان کسی صفحه گسترده را مشاهده میکند، اعمال میشود. یک صفحه گسترده میتواند فقط یک فیلتر پایه در هر برگه داشته باشد. میتوانید با پاک کردن فیلتر پایه، آن را غیرفعال کنید. این کار فیلتر و تمام تنظیمات آن را از صفحه گسترده حذف میکند. اگر میخواهید همان فیلتر را دوباره فعال کنید، باید معیارها را دوباره تنظیم کنید.
مدیریت فیلتر پایه
برای تنظیم یا پاک کردن فیلتر پایه، از متد spreadsheets.batchUpdate با نوع درخواست مناسب استفاده کنید:
- برای تنظیم فیلتر پایه، از متد
SetBasicFilterRequestاستفاده کنید. - برای پاک کردن فیلتر پایه، از متد
ClearBasicFilterRequestاستفاده کنید.
برای فهرست کردن فیلتر پایه، از متد spreadsheets.get استفاده کنید و پارامتر URL fields را روی sheets/basicFilter تنظیم کنید. نمونه کد spreadsheets.get زیر یک URL گوگل شیت را با یک ماسک فیلد نشان میدهد:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter
فیلتر کردن نماها
یک FilterView یک فیلتر نامگذاری شده است که میتوانید هر زمان که دوست دارید آن را خاموش و روشن کنید. یک برگه میتواند چندین نمای فیلتر ذخیره شده داشته باشد، اما شما فقط میتوانید یکی را در یک زمان اعمال کنید. یک برگه همچنین میتواند شامل یک فیلتر پایه و چندین نمای فیلتر باشد، اما نمیتوانید هر دو را همزمان در یک محدوده داده اعمال کنید.
موارد استفاده را فیلتر کنید
در زیر چند نمونه از موارد استفاده برای نمایش فیلترها آمده است:
- شما چندین فیلتر مختلف دارید که میخواهید هنگام مشاهده دادهها بین آنها جابجا شوید.
- شما دسترسی ویرایش به یک صفحه گسترده را ندارید اما همچنان میخواهید فیلتر اعمال کنید. در این حالت، میتوانید یک نمای فیلتر موقت ایجاد کنید که فقط برای شما قابل مشاهده باشد.
شما میخواهید هر شخصی که صفحه گسترده خود را با او به اشتراک میگذارید، دادهها را به طور متفاوتی مشاهده کند. میتوانید با ارائه
spreadsheetIdوfilterViewIdدر URL صفحه گسترده، نمای فیلتری را که میخواهید اعمال کنید، مشخص کنید. برای انجام این کار، هنگام ایجاد نمای فیلتر، ازfilterViewIdبرگردانده شده در پاسخ استفاده کنید.نمونه کد زیر یک URL از Sheets را با نمای فیلتر نشان میدهد:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
مدیریت نمایش فیلترها
برای ایجاد، کپی کردن، تغییر یا حذف نماهای فیلتر، از متد spreadsheets.batchUpdate با نوع درخواست مناسب استفاده کنید:
- برای ایجاد یک نمای فیلتر، از متد
AddFilterViewRequestاستفاده کنید. - برای ایجاد یک کپی از یک نمای فیلتر، از متد
DuplicateFilterViewRequestاستفاده کنید. - برای تغییر ویژگیهای یک نمای فیلتر، از متد
UpdateFilterViewRequestاستفاده کنید. - برای حذف یک فیلتر ویو، از متد
DeleteFilterViewRequestاستفاده کنید.
برای فهرست کردن تمام نماهای فیلتر خود، از متد spreadsheets.get استفاده کنید و پارامتر URL fields را روی sheets/filterViews تنظیم کنید. نمونه کد spreadsheets.get زیر یک URL از Sheets را با یک ماسک فیلد نشان میدهد:
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews
نمایش JSON یک فیلتر
نمونه کد زیر نمایش JSON برای یک شیء FilterView را نشان میدهد. شیء BasicFilter نیز مشابه است، با این تفاوت که فاقد فیلدهای filterViewId و title است و نمیتواند از یک محدوده نامگذاری شده استفاده کند.
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
نمونه دادههای فروش
بقیه این سند به جدول دادههای فروش نمونه زیر ارجاع میدهد:
| الف | ب | سی | دی | ای | ف | جی | |
| ۱ | دسته بندی کالا | شماره مدل | هزینه | مقدار | منطقه | فروشنده | تاریخ ارسال |
| ۲ | چرخ | W-24 | ۲۰.۵۰ دلار | ۴ | غرب | بث | ۱/۳/۲۰۱۶ |
| ۳ | درب | D-01X | ۱۵٫۰۰ دلار | ۲ | جنوب | امیر | ۱۵/۳/۲۰۱۶ |
| ۴ | قاب | FR-0B1 | ۳۴٫۰۰ دلار | ۸ | شرق | هانا | ۳/۱۲/۲۰۱۶ |
| ۵ | پنل | پ-034 | ۶٫۰۰ دلار | ۴ | شمال | دوین | ۱۵/۳/۲۰۱۶ |
| ۶ | پنل | پ-۰۵۲ | ۱۱.۵۰ دلار | ۷ | شرق | اریک | ۱۶/۵/۲۰۱۶ |
| ۷ | چرخ | W-24 | ۲۰.۵۰ دلار | ۱۱ | جنوب | شلدون | ۳۰/۴/۲۰۱۶ |
| ۸ | موتور | ENG-0161 | ۳۳۰٫۰۰ دلار | ۲ | شمال | جسی | ۷/۲/۲۰۱۶ |
مرتب سازی مشخصات
یک فیلتر میتواند چندین مشخصه مرتبسازی داشته باشد. این مشخصهها نحوه مرتبسازی دادهها را تعیین میکنند و به ترتیب مشخصشده اعمال میشوند. ویژگی SortSpec.dimensionIndex اندیس ستونی را که مرتبسازی باید روی آن اعمال شود، مشخص میکند.
نمونه کد زیر مشخصات مرتبسازی را نشان میدهد:
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
وقتی این مشخصه روی دادههای فروش نمونه اعمال شود، ابتدا بر اساس ستون «مقدار» و سپس، اگر دو ردیف مقدار یکسانی داشته باشند، بر اساس «تاریخ ارسال» مرتبسازی انجام میشود.
| الف | ب | سی | دی | ای | ف | جی | |
| ۱ | دسته بندی کالا | شماره مدل | هزینه | مقدار | منطقه | فروشنده | تاریخ ارسال |
| ۲ | درب | D-01X | ۱۵٫۰۰ دلار | ۲ | جنوب | امیر | ۱۵/۳/۲۰۱۶ |
| ۳ | موتور | ENG-0161 | ۳۳۰٫۰۰ دلار | ۲ | شمال | جسی | ۷/۲/۲۰۱۶ |
| ۴ | چرخ | W-24 | ۲۰.۵۰ دلار | ۴ | غرب | بث | ۱/۳/۲۰۱۶ |
| ۵ | پنل | پ-034 | ۶٫۰۰ دلار | ۴ | شمال | دوین | ۱۵/۳/۲۰۱۶ |
| ۶ | پنل | پ-۰۵۲ | ۱۱.۵۰ دلار | ۷ | شرق | اریک | ۱۶/۵/۲۰۱۶ |
| ۷ | قاب | FR-0B1 | ۳۴٫۰۰ دلار | ۸ | شرق | هانا | ۳/۱۲/۲۰۱۶ |
| ۸ | چرخ | W-24 | ۲۰.۵۰ دلار | ۱۱ | جنوب | شلدون | ۳۰/۴/۲۰۱۶ |
معیارهای فیلتر
شیء FilterCriteria تعیین میکند که چه دادههای صفحهگسترده در یک فیلتر یا نمای فیلتر پایه نمایش داده شوند یا پنهان شوند. هر معیار به مقادیر موجود در یک ستون خاص بستگی دارد. شما معیارهای فیلتر را به عنوان یک نقشه ارائه میدهید که در آن کلیدها، شاخصهای ستون و مقادیر، معیارها هستند.
برای معیارهایی که با استفاده از یک condition بولی مشخص میشوند، شرط باید true باشد تا مقادیر نمایش داده شوند. این شرط، hiddenValues لغو نمیکند. اگر مقداری در زیر hiddenValues فهرست شده باشد، تمام تطابقهای آن مقدار همچنان پنهان هستند.
نمونه کد زیر یک نقشه معیارهای فیلتر را نشان میدهد:
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
وقتی این معیار روی دادههای فروش نمونه اعمال شود، فقط ردیفهایی را نشان میدهد که مقدار ستون «رده کالا» برابر با «پانل» نباشد و مقدار ستون «تاریخ ارسال» قبل از «30 آوریل 2016» باشد.
| الف | ب | سی | دی | ای | ف | جی | |
| ۱ | دسته بندی کالا | شماره مدل | هزینه | مقدار | منطقه | فروشنده | تاریخ ارسال |
| ۲ | چرخ | W-24 | ۲۰.۵۰ دلار | ۴ | غرب | بث | ۱/۳/۲۰۱۶ |
| ۳ | درب | D-01X | ۱۵٫۰۰ دلار | ۲ | جنوب | امیر | ۱۵/۳/۲۰۱۶ |
| ۴ | قاب | FR-0B1 | ۳۴٫۰۰ دلار | ۸ | شرق | هانا | ۳/۱۲/۲۰۱۶ |
نمونه کد نمایش فیلتر
نمونه کد زیر نحوه ایجاد یک نمای فیلتر، کپی کردن آن و سپس بهروزرسانی نسخه کپیشده با استفاده از دادههای فروش نمونه را نشان میدهد.