फ़िल्टर

फ़िल्टर की मदद से, आपको वह डेटा क्रम से लगाने और फ़िल्टर करने की सुविधा मिलती है जिसे आपको स्प्रेडशीट. फ़िल्टर से, आपकी स्प्रेडशीट में मौजूद डेटा की वैल्यू में बदलाव नहीं होता. आप जानकारी को कुछ समय के लिए छिपाने या क्रम से लगाने के लिए, फ़िल्टर का इस्तेमाल करें. वह डेटा जो तय किया गया फ़िल्टर मानदंड तब तक नहीं दिखता, जब तक फ़िल्टर चालू करें. फ़िल्टर व्यू की मदद से, अलग-अलग नाम अपने हिसाब से फ़िल्टर चुनें और जब चाहें उनके बीच स्विच करें.

यहां फ़िल्टर के इस्तेमाल के कुछ उदाहरण दिए गए हैं:

  • डेटा को किसी कॉलम के हिसाब से क्रम से लगाएं. उदाहरण के लिए, उपयोगकर्ता के रिकॉर्ड को आखिरी के क्रम से लगाएं नाम.
  • कोई खास शर्त पूरी करने वाला डेटा छिपाएं. उदाहरण के लिए, सभी रिकॉर्ड छिपाएं दो साल से ज़्यादा पुराना है.
  • किसी खास वैल्यू से मेल खाने वाला डेटा छिपाएं. उदाहरण के लिए, स्थिति "बंद" है.

बुनियादी फ़िल्टर

कॉन्टेंट बनाने BasicFilter होती है, जो डिफ़ॉल्ट फ़िल्टर है. जब भी कोई व्यक्ति स्प्रेडशीट. किसी स्प्रेडशीट में हर पेज के लिए एक बेसिक फ़िल्टर हो सकता है शीट में से किसी एक को चुनें. आप बेसिक फ़िल्टर को उसे साफ़ करना. ऐसा करने से, स्प्रेडशीट से फ़िल्टर और उसकी सभी सेटिंग हट जाती हैं. अगर आपको उसी फ़िल्टर को फिर से चालू करना है, तो आपको शर्तें फिर से सेट करनी होंगी.

बुनियादी फ़िल्टर को प्रबंधित करें

बेसिक फ़िल्टर को सेट करने या हटाने के लिए, spreadsheets.batchUpdate सही अनुरोध टाइप का इस्तेमाल करें:

  • बेसिक फ़िल्टर सेट करने के लिए, SetBasicFilterRequest का इस्तेमाल करें तरीका.
  • बेसिक फ़िल्टर को हटाने के लिए, ClearBasicFilterRequest का इस्तेमाल करें तरीका.

बेसिक फ़िल्टर को लिस्ट करने के लिए, spreadsheets.get तरीका और fields यूआरएल पैरामीटर को sheets/basicFilter पर सेट करें. नीचे दिए गए spreadsheets.get के कोड सैंपल में, फ़ील्ड के साथ Google Sheets का यूआरएल दिखाया गया है मास्क:

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter)

फ़िल्टर व्यू

FilterView एक नाम वाला फ़िल्टर है. इसे कभी भी बंद और चालू किया जा सकता है. स्प्रेडशीट कई फ़िल्टर व्यू हो सकते हैं, लेकिन एक बार में सिर्फ़ एक ही फ़िल्टर व्यू लागू किया जा सकता है.

यहां फ़िल्टर व्यू के लिए इस्तेमाल के कुछ उदाहरण दिए गए हैं:

  • आपके पास कई अलग-अलग तरह के फ़िल्टर हैं. आपको डेटा को देखते समय.
  • आपके पास स्प्रेडशीट में बदलाव करने का ऐक्सेस नहीं है, लेकिन आप फिर भी स्प्रेडशीट पर फ़िल्टर. इस स्थिति में, आप ऐसा अस्थायी फ़िल्टर व्यू बना सकते हैं, जो आपको कौन देख सकता है.
  • आपको जिन लोगों के साथ स्प्रेडशीट शेयर करनी है उन सभी को डेटा देखना चाहिए इसे अलग तरीके से. फ़िल्टर व्यू के तौर पर, वह फ़िल्टर व्यू सेट किया जा सकता है spreadsheetId और स्प्रेडशीट यूआरएल की मदद से, filterViewId डालें. ऐसा करने के लिए, filterViewId का इस्तेमाल करें जब आप फ़िल्टर व्यू बनाते हैं, तो रिस्पॉन्स में यह वैल्यू दिखती है.

    नीचे दिया गया कोड सैंपल, Google Sheets के यूआरएल को फ़िल्टर व्यू के साथ दिखाता है:

    https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID

फ़िल्टर व्यू मैनेज करें

फ़िल्टर व्यू बनाने, डुप्लीकेट बनाने, उनमें बदलाव करने या उन्हें मिटाने के लिए, spreadsheets.batchUpdate सही अनुरोध टाइप का इस्तेमाल करें:

  • फ़िल्टर व्यू बनाने के लिए, AddFilterViewRequest का इस्तेमाल करें तरीका.
  • फ़िल्टर व्यू की कॉपी बनाने के लिए, DuplicateFilterViewRequest का इस्तेमाल करें तरीका.
  • फ़िल्टर व्यू की प्रॉपर्टी को बदलने के लिए, UpdateFilterViewRequest तरीका.
  • फ़िल्टर व्यू मिटाने के लिए, DeleteFilterViewRequest का इस्तेमाल करें तरीका.

अपने सभी फ़िल्टर व्यू को शामिल करने के लिए, spreadsheets.get तरीका और fields यूआरएल पैरामीटर को sheets/filterViews पर सेट करें. नीचे दिए गए spreadsheets.get के कोड सैंपल में, फ़ील्ड के साथ Google Sheets का यूआरएल दिखाया गया है मास्क:

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews)

फ़िल्टर के बारे में जानकारी

नीचे दिया गया कोड सैंपल, FilterView ऑब्जेक्ट है. कॉन्टेंट बनाने BasicFilter ऑब्जेक्ट एक ही है, लेकिन इसमें filterViewId और title फ़ील्ड नहीं हैं, साथ ही, यह नाम वाली रेंज का इस्तेमाल नहीं कर सकता.

{
  "filterViewId": number,
  "title": string,
  "range": {
    object(GridRange)
  },
  "namedRangeId": string,
  "sortSpecs": [
    {
      object(SortSpec)
    }
  ],
  "criteria": {
    string: {
      object(FilterCriteria)
    },
    ...
  }
}

डेटा का उदाहरण

इस दस्तावेज़ के बाकी हिस्से में, उदाहरण के तौर पर दी गई बिक्री के डेटा वाली टेबल का रेफ़रंस दिया गया है:

टेबल 1. सेल्स डेटा का उदाहरण
A B C D E F G
1 आइटम की कैटगरी मॉडल नंबर लागत संख्या क्षेत्र सेल्सपर्सन भेजने की तारीख
2 पहिया W-24 20.50 डॉलर 4 पश्चिम बेथ 1/3/2016
3 दरवाज़ा D-01X 15.00 डॉलर 2 दक्षिण आमिर 15/3/2016
4 फ़्रेम फ़्रेंच-0B1 34.00 डॉलर 8 पूर्व हाना 12/3/2016
5 पैनल P-034 INR270 4 उत्तरी Devyn 15/3/2016
6 पैनल P-052 11.50 डॉलर 7 पूर्व एरिक 16/5/2016
7 पहिया W-24 20.50 डॉलर 11 दक्षिण Sheldon 30/4/2016
8 इंजन ENG-0161 330.00 डॉलर 2 उत्तरी जेसी 2/7/2016

क्रम से लगाने की खास बातें

किसी फ़िल्टर में, क्रम से लगाने के लिए कई खास बातें हो सकती हैं. इन स्पेसिफ़िकेशन से तय होता है कि और तय क्रम में लागू करके डेटा को क्रम से कैसे लगाते हैं. कॉन्टेंट बनाने SortSpec.dimensionIndex एट्रिब्यूट, कॉलम के उस इंडेक्स के बारे में बताता है जिस पर क्रम से लगाया जाना चाहिए.

नीचे दिया गया कोड सैंपल, क्रम से लगाने की खास जानकारी दिखाता है:

[
  {
    "dimensionIndex": 3,
    "sortOrder": "ASCENDING"
  },
  {
    "dimensionIndex": 6,
    "sortOrder": "ASCENDING"
  }
]

उदाहरण के तौर पर बिक्री के डेटा पर लागू किए जाने पर, यह स्पेसिफ़िकेशन "संख्या" के हिसाब से क्रम में लगाया जाता है पहले, और फिर, अगर दो पंक्तियों में एक जैसी संख्या है, तो "शिप करें" के हिसाब से तारीख."

टेबल 2. दो कॉलम के हिसाब से क्रम में लगाया गया बिक्री का डेटा
A B C D E F G
1 आइटम की कैटगरी मॉडल नंबर लागत संख्या क्षेत्र सेल्सपर्सन भेजने की तारीख
2 दरवाज़ा D-01X 15.00 डॉलर 2 दक्षिण आमिर 15/3/2016
3 इंजन ENG-0161 330.00 डॉलर 2 उत्तरी जेसी 2/7/2016
4 पहिया W-24 20.50 डॉलर 4 पश्चिम बेथ 1/3/2016
5 पैनल P-034 INR270 4 उत्तरी Devyn 15/3/2016
6 पैनल P-052 11.50 डॉलर 7 पूर्व एरिक 16/5/2016
7 फ़्रेम फ़्रेंच-0B1 34.00 डॉलर 8 पूर्व हाना 12/3/2016
8 पहिया W-24 20.50 डॉलर 11 दक्षिण Sheldon 30/4/2016

फ़िल्टर की शर्तें

कॉन्टेंट बनाने FilterCriteria के तरीके से तय होता है कि बेसिक फ़िल्टर में कौनसा स्प्रेडशीट डेटा दिखाया या छिपाया जाएगा या फ़िल्टर व्यू. हर शर्त, किसी कॉलम की वैल्यू पर निर्भर करती है. आपने लोगों तक पहुंचाया मुफ़्त में फ़िल्टर मानदंड को मैप के रूप में दें, जहां कुंजियां कॉलम इंडेक्स हैं, और वैल्यू ही मानदंड हैं.

बूलियन condition का इस्तेमाल करके तय की गई शर्तों के लिए, शर्त True होनी चाहिए वैल्यू दिखाई जा सकती हैं. यह शर्त hiddenValues को नहीं बदलती है. अगर कोई वैल्यू hiddenValues में दी गई है. वैल्यू के लिए मिलने वाले सभी मैच अब भी छिपे हुए हैं.

नीचे दिया गया कोड सैंपल, फ़िल्टर की शर्तों का मैप दिखाता है:

{
  0: {
    'hiddenValues': ['Panel']
  },
  6: {
    'condition': {
      'type': 'DATE_BEFORE',
      'values': {
        'userEnteredValue': '4/30/2016'
      }
    }
  }
}

उदाहरण बिक्री डेटा पर लागू किए जाने पर, यह मानदंड सिर्फ़ उन पंक्तियों को दिखाता है जिनमें "आइटम की कैटगरी" "पैनल" नहीं है और जहां "शिप करने की तारीख" है की तारीख, 30 अप्रैल, 2016 से पहले की है.

टेबल 3. फ़िल्टर की शर्तों का इस्तेमाल करके बिक्री का डेटा
A B C D E F G
1 आइटम की कैटगरी मॉडल नंबर लागत संख्या क्षेत्र सेल्सपर्सन भेजने की तारीख
2 पहिया W-24 20.50 डॉलर 4 पश्चिम बेथ 1/3/2016
3 दरवाज़ा D-01X 15.00 डॉलर 2 दक्षिण आमिर 15/3/2016
4 फ़्रेम फ़्रेंच-0B1 34.00 डॉलर 8 पूर्व हाना 12/3/2016

नमूना

नीचे दिया गया कोड सैंपल, फ़िल्टर व्यू बनाने, उसका डुप्लीकेट बनाने, और इसके बाद, बिक्री के डेटा के उदाहरण का इस्तेमाल करके, डुप्लीकेट वर्शन को अपडेट करें पढ़ें.

Python

sheets/snippets/sheets_filter_views.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def filter_views(spreadsheet_id):
  """
  Creates the batch_update the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    service = build("sheets", "v4", credentials=creds)

    my_range = {
        "sheetId": 0,
        "startRowIndex": 0,
        "startColumnIndex": 0,
    }
    addfilterviewrequest = {
        "addFilterView": {
            "filter": {
                "title": "Sample Filter",
                "range": my_range,
                "sortSpecs": [{
                    "dimensionIndex": 3,
                    "sortOrder": "DESCENDING",
                }],
                "criteria": {
                    0: {"hiddenValues": ["Panel"]},
                    6: {
                        "condition": {
                            "type": "DATE_BEFORE",
                            "values": {"userEnteredValue": "4/30/2016"},
                        }
                    },
                },
            }
        }
    }

    body = {"requests": [addfilterviewrequest]}
    addfilterviewresponse = (
        service.spreadsheets()
        .batchUpdate(spreadsheetId=spreadsheet_id, body=body)
        .execute()
    )

    duplicatefilterviewrequest = {
        "duplicateFilterView": {
            "filterId": addfilterviewresponse["replies"][0]["addFilterView"][
                "filter"
            ]["filterViewId"]
        }
    }

    body = {"requests": [duplicatefilterviewrequest]}
    duplicatefilterviewresponse = (
        service.spreadsheets()
        .batchUpdate(spreadsheetId=spreadsheet_id, body=body)
        .execute()
    )

    updatefilterviewrequest = {
        "updateFilterView": {
            "filter": {
                "filterViewId": duplicatefilterviewresponse["replies"][0][
                    "duplicateFilterView"
                ]["filter"]["filterViewId"],
                "title": "Updated Filter",
                "criteria": {
                    0: {},
                    3: {
                        "condition": {
                            "type": "NUMBER_GREATER",
                            "values": {"userEnteredValue": "5"},
                        }
                    },
                },
            },
            "fields": {"paths": ["criteria", "title"]},
        }
    }

    body = {"requests": [updatefilterviewrequest]}
    updatefilterviewresponse = (
        service.spreadsheets()
        .batchUpdate(spreadsheetId=spreadsheet_id, body=body)
        .execute()
    )
    print(str(updatefilterviewresponse))
  except HttpError as error:
    print(f"An error occurred: {error}")


if __name__ == "__main__":
  # Pass: spreadsheet_id
  filter_views("1CM29gwKIzeXsAppeNwrc8lbYaVMmUclprLuLYuHog4k")