CINXE.COM

Migrate from Sheets API v3  |  Google Sheets  |  Google for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#fff"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/sheets/api/guides/migration"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://developers.google.com/sheets/api/guides/migration" /><link rel="alternate" hreflang="x-default" href="https://developers.google.com/sheets/api/guides/migration" /><link rel="alternate" hreflang="ar" href="https://developers.google.com/sheets/api/guides/migration?hl=ar" /><link rel="alternate" hreflang="bn" href="https://developers.google.com/sheets/api/guides/migration?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://developers.google.com/sheets/api/guides/migration?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://developers.google.com/sheets/api/guides/migration?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://developers.google.com/sheets/api/guides/migration?hl=fa" /><link rel="alternate" hreflang="fr" href="https://developers.google.com/sheets/api/guides/migration?hl=fr" /><link rel="alternate" hreflang="de" href="https://developers.google.com/sheets/api/guides/migration?hl=de" /><link rel="alternate" hreflang="he" href="https://developers.google.com/sheets/api/guides/migration?hl=he" /><link rel="alternate" hreflang="hi" href="https://developers.google.com/sheets/api/guides/migration?hl=hi" /><link rel="alternate" hreflang="id" href="https://developers.google.com/sheets/api/guides/migration?hl=id" /><link rel="alternate" hreflang="it" href="https://developers.google.com/sheets/api/guides/migration?hl=it" /><link rel="alternate" hreflang="ja" href="https://developers.google.com/sheets/api/guides/migration?hl=ja" /><link rel="alternate" hreflang="ko" href="https://developers.google.com/sheets/api/guides/migration?hl=ko" /><link rel="alternate" hreflang="pl" href="https://developers.google.com/sheets/api/guides/migration?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://developers.google.com/sheets/api/guides/migration?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://developers.google.com/sheets/api/guides/migration?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://developers.google.com/sheets/api/guides/migration?hl=es-419" /><link rel="alternate" hreflang="th" href="https://developers.google.com/sheets/api/guides/migration?hl=th" /><link rel="alternate" hreflang="tr" href="https://developers.google.com/sheets/api/guides/migration?hl=tr" /><link rel="alternate" hreflang="vi" href="https://developers.google.com/sheets/api/guides/migration?hl=vi" /><title>Migrate from Sheets API v3 &nbsp;|&nbsp; Google Sheets &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Migrate from Sheets API v3 &nbsp;|&nbsp; Google Sheets &nbsp;|&nbsp; Google for Developers"><meta property="og:url" content="https://developers.google.com/sheets/api/guides/migration"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/opengraph/white.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Migrate from Sheets API v3" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google Workspace", "item": "https://developers.google.com/workspace" },{ "@type": "ListItem", "position": 2, "name": "Google Sheets", "item": "https://developers.google.com/sheets" },{ "@type": "ListItem", "position": 3, "name": "Migrate from Sheets API v3", "item": "https://developers.google.com/sheets/api/guides/migration" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="white" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://developers.google.com/workspace" track-metadata-eventdetail="https://developers.google.com/workspace" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - home" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" > Home </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/sheets" track-metadata-eventdetail="https://developers.google.com/sheets" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - google sheets" track-metadata-module="primary nav" aria-label="Google Sheets, selected" data-category="Site-Wide Custom Events" data-label="Tab: Google Sheets" track-name="google sheets" > Google Sheets </a> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/products-menu" track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" > All products </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for All products" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/products-menu" track-metadata-position="nav - all products" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Google Workspace apps</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/admin-sdk" track-type="nav" track-metadata-eventdetail="https://developers.google.com/admin-sdk" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Admin console" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/cloud-search" track-type="nav" track-metadata-eventdetail="https://developers.google.com/cloud-search" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Cloud Search" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Cloud Search </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/gmail" track-type="nav" track-metadata-eventdetail="https://developers.google.com/gmail" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Gmail" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Gmail </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/calendar" track-type="nav" track-metadata-eventdetail="https://developers.google.com/calendar" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Calendar" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Calendar </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Chat" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Chat </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/classroom" track-type="nav" track-metadata-eventdetail="https://developers.google.com/classroom" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Classroom" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Classroom </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/docs" track-type="nav" track-metadata-eventdetail="https://developers.google.com/docs" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-label="Tab menu: All products - Google Docs" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Docs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="google workspace apps" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Drive" > <div class="devsite-nav-item-title"> Google Drive </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/forms" track-type="nav" track-metadata-eventdetail="https://developers.google.com/forms" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Forms" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Forms </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/keep" track-type="nav" track-metadata-eventdetail="https://developers.google.com/keep" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Keep" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Keep </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/meet" track-type="nav" track-metadata-eventdetail="https://developers.google.com/meet" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Meet" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Meet </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/sheets" track-type="nav" track-metadata-eventdetail="https://developers.google.com/sheets" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Google Sheets" > <div class="devsite-nav-item-title"> Google Sheets </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/sites" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/sites" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Sites" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Sites </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/slides" track-type="nav" track-metadata-eventdetail="https://developers.google.com/slides" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Slides" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Slides </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/tasks" track-type="nav" track-metadata-eventdetail="https://developers.google.com/tasks" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Tasks" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Tasks </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/vault" track-type="nav" track-metadata-eventdetail="https://developers.google.com/vault" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline=" " tooltip data-label="Tab menu: All products - Google Vault" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Google Vault </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Extend, automate &amp; share</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/add-ons" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/add-ons" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Add-ons" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Add-ons </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/apps-script" track-type="nav" track-metadata-eventdetail="https://developers.google.com/apps-script" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Apps Script" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Apps Script </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/chat/overview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/chat/overview" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Chat apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Chat apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/drive/api/guides/about-apps" track-type="nav" track-metadata-eventdetail="https://developers.google.com/drive/api/guides/about-apps" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-label="Tab menu: All products - Drive apps" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Drive apps </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/marketplace" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/marketplace" track-metadata-position="nav - all products" track-metadata-module="tertiary nav" track-metadata-module_headline="extend, automate &amp; share" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: All products - Marketplace" > <div class="devsite-nav-item-title"> Marketplace </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-dropdown "> <a href="https://developers.google.com/workspace/resources-menu" track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > Resources </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Resources" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/resources-menu" track-metadata-position="nav - resources" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Tools</li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" track-type="nav" track-metadata-eventdetail="https://admin.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip target="admin-console" data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Admin console" > <div class="devsite-nav-item-title"> Admin console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" track-type="nav" track-metadata-eventdetail="https://script.google.com/" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - Apps Script dashboard" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Apps Script dashboard </div> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" track-type="nav" track-metadata-eventdetail="https://console.cloud.google.com/workspace-api" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip target="console" data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Google Cloud console" > <div class="devsite-nav-item-title"> Google Cloud console </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/explore" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/explore" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip data-label="Tab menu: Resources - APIs Explorer" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> APIs Explorer </div> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" track-type="nav" track-metadata-eventdetail="https://addons.gsuite.google.com/uikit/builder" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="tools" tooltip target="_blank" data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Card Builder" > <div class="devsite-nav-item-title"> Card Builder </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Training &amp; support</li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/guides/get-started" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/guides/get-started" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-label="Tab menu: Resources - How to get started" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> How to get started </div> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" track-type="nav" track-metadata-eventdetail="https://codelabs.developers.google.com/?product=googleworkspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-category="Workspace top menu navigation" target="_blank" data-label="Tab menu: Resources - Codelabs" > <div class="devsite-nav-item-title"> Codelabs </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/support" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/support" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="training &amp; support" tooltip data-label="Tab menu: Resources - Developer support" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Developer support </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-title" role="heading" tooltip>Updates</li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" track-type="nav" track-metadata-eventdetail="https://developers.googleblog.com/search/?query=Google+Workspace" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-category="Workspace top menu navigation" target="_blank" data-label="Tab menu: Resources - Blog" > <div class="devsite-nav-item-title"> Blog </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/preview" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/preview" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - Developer previews" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> Developer Previews </div> </a> </li> <li class="devsite-nav-item"> <a href="https://developers.google.com/workspace/newsletters" track-type="nav" track-metadata-eventdetail="https://developers.google.com/workspace/newsletters" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-category="Workspace top menu navigation" data-label="Tab menu: Resources - Newsletter" > <div class="devsite-nav-item-title"> Newsletter </div> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" track-type="nav" track-metadata-eventdetail="https://twitter.com/workspacedevs" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - X (Twitter)" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> X (Twitter) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-type="nav" track-metadata-eventdetail="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" track-metadata-position="nav - resources" track-metadata-module="tertiary nav" track-metadata-module_headline="updates" tooltip data-label="Tab menu: Resources - YouTube" target="_blank" data-category="Workspace top menu navigation" > <div class="devsite-nav-item-title"> YouTube </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Google Sheets" tenant-name="Google for Developers" project-scope="/sheets" url-scoped="https://developers.google.com/s/results/sheets" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/sheets" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Sheets" > Google Sheets </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/sheets" track-metadata-eventdetail="https://developers.google.com/sheets" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/sheets/api/guides/concepts" track-metadata-eventdetail="https://developers.google.com/sheets/api/guides/concepts" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" aria-label="Guides, selected" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab > <a href="https://developers.google.com/sheets/api/reference/rest" track-metadata-eventdetail="https://developers.google.com/sheets/api/reference/rest" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://developers.google.com/sheets/api/samples" track-metadata-eventdetail="https://developers.google.com/sheets/api/samples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - samples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" > Samples </a> </tab> <tab > <a href="https://developers.google.com/sheets/api/support" track-metadata-eventdetail="https://developers.google.com/sheets/api/support" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/workspace"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google Workspace" src="https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" srcset=" https://fonts.gstatic.com/s/i/productlogos/googleg/v6/16px.svg" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Workspace" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>Workspace </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Home" track-name="home" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Home" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Home </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Google Sheets" track-name="google sheets" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sheets" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sheets </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/sheets" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets/api/guides/concepts" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets/api/reference/rest" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets/api/samples" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Samples" track-name="samples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Samples" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Samples </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets/api/support" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/products-menu" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" data-category="Site-Wide Custom Events" data-label="Responsive Tab: All products" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > All products </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: All products" track-name="all products" > <span class="devsite-nav-text" tooltip menu="All products"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="All products"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/workspace/resources-menu" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Resources </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Resources" track-name="resources" > <span class="devsite-nav-text" tooltip menu="Resources"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Resources"> </span> </span> </li> </ul> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Sheets API</span> </div></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/concepts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/concepts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/concepts" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Get started</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-external"><a href="/workspace/guides/get-started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/guides/get-started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/guides/get-started" target="_blank"><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-external"><a href="/workspace/guides/configure-oauth-consent" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /workspace/guides/configure-oauth-consent" track-type="bookNav" track-name="click" track-metadata-eventdetail="/workspace/guides/configure-oauth-consent" target="_blank"><span class="devsite-nav-text" tooltip>Configure OAuth consent</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/sheets/api/scopes" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/scopes" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/scopes" ><span class="devsite-nav-text" tooltip>Choose scopes</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Quickstarts</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/sheets/api/quickstart/js" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/quickstart/js" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/quickstart/js" ><span class="devsite-nav-text" tooltip>JavaScript</span></a></li><li class="devsite-nav-item"><a href="/sheets/api/quickstart/go" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/quickstart/go" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/quickstart/go" ><span class="devsite-nav-text" tooltip>Go</span></a></li><li class="devsite-nav-item"><a href="/sheets/api/quickstart/apps-script" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/quickstart/apps-script" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/quickstart/apps-script" ><span class="devsite-nav-text" tooltip>Google Apps Script</span></a></li><li class="devsite-nav-item"><a href="/sheets/api/quickstart/java" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/quickstart/java" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/quickstart/java" ><span class="devsite-nav-text" tooltip>Java</span></a></li><li class="devsite-nav-item"><a href="/sheets/api/quickstart/nodejs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/quickstart/nodejs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/quickstart/nodejs" ><span class="devsite-nav-text" tooltip>Node.js</span></a></li><li class="devsite-nav-item"><a href="/sheets/api/quickstart/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/quickstart/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/quickstart/python" ><span class="devsite-nav-text" tooltip>Python</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-break"></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/create" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/create" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/create" ><span class="devsite-nav-text" tooltip>Create a spreadsheet</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/values" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/values" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/values" ><span class="devsite-nav-text" tooltip>Read &amp; write cell values</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/batchupdate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/batchupdate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/batchupdate" ><span class="devsite-nav-text" tooltip>Update spreadsheets</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/formats" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/formats" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/formats" ><span class="devsite-nav-text" tooltip>Date &amp; number formats</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/pivot-tables" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/pivot-tables" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/pivot-tables" ><span class="devsite-nav-text" tooltip>Pivot tables</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/conditional-format" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/conditional-format" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/conditional-format" ><span class="devsite-nav-text" tooltip>Conditional formatting</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/filters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/filters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/filters" ><span class="devsite-nav-text" tooltip>Filters</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/metadata" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/metadata" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/metadata" ><span class="devsite-nav-text" tooltip>Developer metadata</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/connected-sheets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/connected-sheets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/connected-sheets" ><span class="devsite-nav-text" tooltip>Connected Sheets</span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/field-masks" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/field-masks" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/field-masks" ><span class="devsite-nav-text" tooltip>Use field masks</span></a></li> <li class="devsite-nav-item devsite-nav-external"><a href="/chart/interactive/docs/spreadsheets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /chart/interactive/docs/spreadsheets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/chart/interactive/docs/spreadsheets" target="_blank"><span class="devsite-nav-text" tooltip>Use Google Charts</span><span class="devsite-nav-icon material-icons" data-icon="external" data-title="External" aria-hidden="true"></span></a></li> <li class="devsite-nav-item"><a href="/sheets/api/guides/migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/migration" ><span class="devsite-nav-text" tooltip>Migrate from Sheets API v3</span></a></li> <li class="devsite-nav-item devsite-nav-break"></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Best practices</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/sheets/api/guides/batch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/batch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/batch" ><span class="devsite-nav-text" tooltip>Batch requests</span></a></li><li class="devsite-nav-item"><a href="/sheets/api/guides/performance" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/guides/performance" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/guides/performance" ><span class="devsite-nav-text" tooltip>Improve performance</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Troubleshoot</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/sheets/api/troubleshoot-authentication-authorization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/troubleshoot-authentication-authorization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/troubleshoot-authentication-authorization" ><span class="devsite-nav-text" tooltip>Troubleshoot authentication &amp; authorization</span></a></li><li class="devsite-nav-item"><a href="/sheets/api/troubleshoot-api-errors" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /sheets/api/troubleshoot-api-errors" track-type="bookNav" track-name="click" track-metadata-eventdetail="/sheets/api/troubleshoot-api-errors" ><span class="devsite-nav-text" tooltip>Troubleshoot API errors</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Extend &amp; automate</span> </div></li> <li class="devsite-nav-item"><a href="/apps-script/add-ons/editors/sheets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/add-ons/editors/sheets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/add-ons/editors/sheets" ><span class="devsite-nav-text" tooltip>Add-ons</span></a></li> <li class="devsite-nav-item"><a href="/apps-script/guides/sheets" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /apps-script/guides/sheets" track-type="bookNav" track-name="click" track-metadata-eventdetail="/apps-script/guides/sheets" ><span class="devsite-nav-text" tooltip>Apps Script</span></a></li> </ul> <ul class="devsite-nav-list" menu="All products" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Google Workspace apps </span> </span> </li> <li class="devsite-nav-item"> <a href="/admin-sdk" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="/cloud-search" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Cloud Search" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Cloud Search </span> </a> </li> <li class="devsite-nav-item"> <a href="/gmail" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gmail" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gmail </span> </a> </li> <li class="devsite-nav-item"> <a href="/calendar" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Calendar" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Calendar </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Chat" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Chat </span> </a> </li> <li class="devsite-nav-item"> <a href="/classroom" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Classroom" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Classroom </span> </a> </li> <li class="devsite-nav-item"> <a href="/docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Docs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Docs </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Drive" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Drive </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip >   </span> </span> </li> <li class="devsite-nav-item"> <a href="/forms" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Forms" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Forms </span> </a> </li> <li class="devsite-nav-item"> <a href="/keep" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Keep" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Keep </span> </a> </li> <li class="devsite-nav-item"> <a href="/meet" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Meet" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Meet </span> </a> </li> <li class="devsite-nav-item"> <a href="/sheets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sheets" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sheets </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/sites" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Sites" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Sites </span> </a> </li> <li class="devsite-nav-item"> <a href="/slides" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Slides" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Slides </span> </a> </li> <li class="devsite-nav-item"> <a href="/tasks" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Tasks" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Tasks </span> </a> </li> <li class="devsite-nav-item"> <a href="/vault" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Vault" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Vault </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Extend, automate &amp; share </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/add-ons" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Add-ons" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Add-ons </span> </a> </li> <li class="devsite-nav-item"> <a href="/apps-script" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/chat/overview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Chat apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Chat apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/drive/api/guides/about-apps" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Drive apps" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Drive apps </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/marketplace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Marketplace" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Marketplace </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Resources" aria-label="Side menu" hidden> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Tools </span> </span> </li> <li class="devsite-nav-item"> <a href="https://admin.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Admin console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Admin console </span> </a> </li> <li class="devsite-nav-item"> <a href="https://script.google.com/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Apps Script dashboard" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Apps Script dashboard </span> </a> </li> <li class="devsite-nav-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google Cloud console" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google Cloud console </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/explore" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: APIs Explorer" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > APIs Explorer </span> </a> </li> <li class="devsite-nav-item"> <a href="https://addons.gsuite.google.com/uikit/builder" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Card Builder" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Card Builder </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Training &amp; support </span> </span> </li> <li class="devsite-nav-item"> <a href="/workspace/guides/get-started" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: How to get started" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > How to get started </span> </a> </li> <li class="devsite-nav-item"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Codelabs" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Codelabs </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/support" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer support" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer support </span> </a> </li> <li class="devsite-nav-item devsite-nav-heading"> <span class="devsite-nav-title" tooltip > <span class="devsite-nav-text" tooltip > Updates </span> </span> </li> <li class="devsite-nav-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Blog" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Blog </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/preview" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Developer Previews" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Developer Previews </span> </a> </li> <li class="devsite-nav-item"> <a href="/workspace/newsletters" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Newsletter" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Newsletter </span> </a> </li> <li class="devsite-nav-item"> <a href="https://twitter.com/workspacedevs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: X (Twitter)" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > X (Twitter) </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: YouTube" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > YouTube </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/workspace" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google Workspace" > Google Workspace </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/sheets" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Google Sheets" > Google Sheets </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/sheets/api/guides/concepts" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Guides </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Google Sheets" product-id="717201" bucket="sheets" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191608&amp;template=823917" project-icon="https://fonts.gstatic.com/s/i/productlogos/sheets_2020q4/v5/web-64dp/logo_sheets_2020q4_color_1x_web_64dp.png" project-support-url="https://developers.google.com/sheets/api/support" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Migrate from Sheets API v3 </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <aside class="special"><strong>Important:</strong><span> The Google Sheets API v3 was turned down on August 2, 2021. Use this guide to migrate to Sheets API v4. For more information about this change, <a href="https://cloud.google.com/blog/products/g-suite/migrate-your-apps-use-latest-sheets-api" target="_blank" class="external">read the blog post</a> </span></aside> <p>If you have existing apps based on the Google Sheets API v3, you can migrate to Google Sheets API v4. The v4 version is JSON-based, has an easier-to-use interface, and adds a substantial amount of functionality that is not possible in the v3 version.</p> <p>This page provides a mapping between the older Sheets API v3 commands and their equivalent operations in Sheets API v4. The mapping focuses largely on the <a href="/sheets/api/reference/rest/v4/spreadsheets.values">spreadsheets.values</a> collection, which provides direct cell read and write functionality. Other aspects, such as adding sheets or updating sheet properties are handled by the <a href="/sheets/api/reference/rest/v4/spreadsheets">spreadsheets</a> collection. Note that the v4 API&#39;s JSON structures are not backward-compatible with the XML structures used in v3.</p> <p>For more information about the resources available in the Sheets v4 API, see the <a href="/sheets/api/reference/rest">API Reference</a>.</p> <h3 id="notation_and_terms" data-text="Notation and terms" tabindex="-1">Notation and terms</h3> <p>The v3 API refers to sheets within a particular spreadsheet as &quot;worksheets&quot;. This is synonymous with the term &quot;sheets&quot; that the v4 API uses.</p> <p>The APIs often require you to specify a <a href="/sheets/api/guides/concepts#spreadsheet_id">spreadsheet ID</a> of the spreadsheet you are working with. They also often require the ID of the sheet being manipulated. These values appear either as part of the API endpoint URL, as query parameters, or as part of a request body. In this page, the placeholders <var translate="no">spreadsheetId</var> and <var translate="no">sheetId</var> refer to the spreadsheet and sheet IDs, respectively. When using the methods described on this page, substitute in the actual IDs in these locations.</p> <p>The v3 API also assigns an ID to rows retrieved using its <a href="/sheets/api/guides/migration#retrieve_row_data">list feed</a>; this is represented in this page by the <var translate="no">rowId</var> placeholder.</p> <h3 id="authorize_requests" data-text="Authorize requests" tabindex="-1">Authorize requests</h3> <p>When your app runs, it asks users to grant certain permissions; the scopes that you specify in your application determine which permissions it asks for.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api" data-text="v3 API" tabindex="-1">v3 API</h3><p>The Sheets API v3 operates with a single authorization scope:</p> <pre class="notranslate" translate="no" dir="ltr">https://spreadsheets.google.com/feeds</pre> <p>which is an alias for</p> <pre class="notranslate" translate="no" dir="ltr">https://www.googleapis.com/auth/spreadsheets</pre> <p>Either scope format can be used.</p></section> <section><h3 id="v4-api" data-text="v4 API" tabindex="-1">v4 API</h3><p>The Sheets API v4 uses one or more of the following set of scopes:</p> <pre class="notranslate" translate="no" dir="ltr">https://www.googleapis.com/auth/spreadsheets.readonly https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/drive</pre> <p>Use read-only scopes if the your application does not need to make edits to a user&#39;s sheets or sheet properties. Use spreadsheets scopes instead of Drive scopes if the application does not need general Drive access.</p></section> </div> <h3 id="visibility" data-text="Visibility" tabindex="-1">Visibility</h3> <p>In older versions of the API, the term <em>visibility</em> is used to refer to the availability of a given spreadsheet.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_1" data-text="v3 API" tabindex="-1">v3 API</h3><p>The Sheets API v3 expresses visibility directly in its endpoints. A <code translate="no" dir="ltr">public</code> spreadsheet has been &quot;Published to the Web&quot; and thus can be accessed by the API without authorization, while a <code translate="no" dir="ltr">private</code> spreadsheet does require authentication. Visibility is specified in the endpoint after the spreadsheet ID:</p> <pre class="notranslate" translate="no" dir="ltr">https://spreadsheets.google.com/feeds/worksheets/<var translate="no">spreadsheetId</var>/<b>private</b>/full</pre></section> <section><h3 id="v4-api_1" data-text="v4 API" tabindex="-1">v4 API</h3><p>In the new Sheets API v4, there is no explicit declaration of visibility. API calls are made using spreadsheet IDs. If the application does not have permission to access specified spreadsheet, an error is returned. Otherwise the call proceeds.</p></section> </div> <h3 id="projection" data-text="Projection" tabindex="-1">Projection</h3> <p>The term <em>projection</em> is used by the Sheets API v3 to refer to the set of data that is returned by a given API call&mdash;either all of it, or a fixed subset defined within the API. The Sheets API v4 does not use projection; rather, it allows you more control over what data is returned.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_2" data-text="v3 API" tabindex="-1">v3 API</h3><p>There are only two possible projection settings in the Sheets API v3. <code translate="no" dir="ltr">full</code> projection returns all the available information, whereas <code translate="no" dir="ltr">basic</code> returns a smaller, fixed subset of data (for the worksheets, list, and cells feeds). Like visibility, the projection must be specified in the API endpoint (after the visibility setting):</p> <pre class="notranslate" translate="no" dir="ltr">https://spreadsheets.google.com/feeds/worksheets/<var translate="no">spreadsheetId</var>/public/<b>basic</b></pre> <p>The smaller subset of data provided by the <code translate="no" dir="ltr">basic</code> projection is valuable for making code more efficient, but cannot be customized.</p></section> <section><h3 id="v4-api_2" data-text="v4 API" tabindex="-1">v4 API</h3><p>While the Sheets API v4 can return a full data set, it does not define fixed subsets analogous to the <code translate="no" dir="ltr">basic</code> visibility setting the Sheets API v3. Methods in the <a href="/sheets/api/reference/rest/v4/spreadsheets">spreadsheet</a> collection restrict the amount of data they return through the use of a <a href="/sheets/api/guides/concepts#partial_responses">fields</a> query parameter.</p> <p>For example, the following query only returns the titles of all the sheets in a particular spreadsheet:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>?fields=sheets.properties.title</pre></section> </div> <h3 id="create_a_spreadsheet" data-text="Create a spreadsheet" tabindex="-1">Create a spreadsheet</h3> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_3" data-text="v3 API" tabindex="-1">v3 API</h3><p>The Sheets API v3 does not provide a means to create new spreadsheets; instead, the <a href="/drive/v3/reference/files/create">Drive API Files.create</a> method can be used to create new spreadsheet files. This requires the application to declare the <code translate="no" dir="ltr">https://www.googleapis.com/auth/drive</code> scope.</p></section> <section><h3 id="v4-api_3" data-text="v4 API" tabindex="-1">v4 API</h3><p>The <a href="/drive/v3/reference/files/create">Drive API Files.create</a> method can also be used with the Sheets API v4, but requires the application to provide the <code translate="no" dir="ltr">https://www.googleapis.com/auth/drive</code> scope.</p> <p>As an equivalent alternative, the Sheets API v4 provides a <a href="/sheets/api/reference/rest/v4/spreadsheets/create">spreadsheets.create</a> method, which can also optionally add sheets, set the spreadsheet and sheet properties, and add named ranges. For example, the following creates a new spreadsheet and gives it the name &quot;NewTitle&quot;:</p> <pre class="notranslate" translate="no" dir="ltr">POST https://sheets.googleapis.com/v4/spreadsheets</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "properties": {"title": "NewTitle"} }</pre></section> </div> <h3 id="list_spreadsheets_for_the_authenticated_user" data-text="List spreadsheets for the authenticated user" tabindex="-1">List spreadsheets for the authenticated user</h3> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_4" data-text="v3 API" tabindex="-1">v3 API</h3><p>The Sheets API v3 feed allows an application to retrieve a list of all the spreadsheets accessible by the authenticated user. The spreadsheet feed endpoint is:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/spreadsheets/private/full</pre></section> <section><h3 id="v4-api_4" data-text="v4 API" tabindex="-1">v4 API</h3><p>The Sheets API v4 does not provide this specific operation. We recommend migrating your app to use the drive.file scope in combination with the Google Picker for spreadsheet selection.</p> <p>In the cases where listing spreadsheets is required, it can be replicated via the <a href="/drive/v3/reference/files/list">Drive API Files.list</a> method, using a <code translate="no" dir="ltr">mimeType</code> query:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://www.googleapis.com/drive/v3/files ?q=mimeType='application/vnd.google-apps.spreadsheet'</pre> <p>Using the Drive API files.list method to list all of a user’s spreadsheets requires a <a href="/drive/api/v3/about-auth#OAuth2Authorizing">restricted</a> scope.</p></section> </div> <h3 id="retrieve_sheet_metadata" data-text="Retrieve sheet metadata" tabindex="-1">Retrieve sheet metadata</h3> <p>The Sheets API v3 provides a feed to access the sheet metadata contained within a given spreadsheet (row and cell data is accessed through a separate feed). The metadata includes information such as sheet titles and size information.</p> <p>The Sheets API v4 <a href="/sheets/api/reference/rest/v4/spreadsheets/get">spreadsheets.get</a> method provides access to this information, and much more.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_5" data-text="v3 API" tabindex="-1">v3 API</h3><p>The worksheet feed is accessible from this API endpoint (using an appropriate authorization header):</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/worksheets/<var translate="no">spreadsheetId</var>/private/full</pre> <p>The response to this request has a structure similar to this, with each sheet&#39;s data contained in a separate <code translate="no" dir="ltr">&lt;entry&gt;</code>:</p> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;feed xmlns=&#34;http://www.w3.org/2005/Atom&#34; xmlns:openSearch=&#34;http://a9.com/-/spec/opensearch/1.1/&#34; xmlns:gs=&#34;http://schemas.google.com/spreadsheets/2006&#34; xmlns:gd=&#34;http://schemas.google.com/g/2005&#34; gd:etag=&#39;W/&#34;D0cERnk-eip7ImA9WBBXGEg.&#34;&#39;&gt; &lt;id&gt;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full&lt;/id&gt; &lt;updated&gt;2006-11-17T18:23:45.173Z&lt;/updated&gt; &lt;title type=&#34;text&#34;&gt;Groceries R Us&lt;/title&gt; &lt;link rel=&#34;alternate&#34; type=&#34;text/html&#34; href=&#34;https://spreadsheets.google.com/ccc?key=spreadsheetId&#34;/&gt; &lt;link rel=&#34;http://schemas.google.com/g/2005#feed&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full&#34;/&gt; &lt;link rel=&#34;self&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full&#34;/&gt; &lt;link rel=&#34;http://schemas.google.com/g/2005#post&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full&#34;/&gt; &lt;author&gt; &lt;name&gt;Fitzwilliam Darcy&lt;/name&gt; &lt;email&gt;fitz@example.com&lt;/email&gt; &lt;/author&gt; &lt;openSearch:totalResults&gt;1&lt;/openSearch:totalResults&gt; &lt;openSearch:startIndex&gt;1&lt;/openSearch:startIndex&gt; &lt;openSearch:itemsPerPage&gt;1&lt;/openSearch:itemsPerPage&gt; &lt;entry gd:etag=&#39;&#34;YDwqeyI.&#34;&#39;&gt; &lt;id&gt;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId&lt;/id&gt; &lt;updated&gt;2006-11-17T18:23:45.173Z&lt;/updated&gt; &lt;title type=&#34;text&#34;&gt;Sheet1&lt;/title&gt; &lt;content type=&#34;text&#34;&gt;Sheet1&lt;/content&gt; &lt;link rel=&#34;http://schemas.google.com/spreadsheets/2006#listfeed&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full&#34;/&gt; &lt;link rel=&#34;http://schemas.google.com/spreadsheets/2006#cellsfeed&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full&#34;/&gt; &lt;link rel=&#34;self&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId&#34;/&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version&#34;/&gt; &lt;gs:rowCount&gt;100&lt;/gs:rowCount&gt; &lt;gs:colCount&gt;20&lt;/gs:colCount&gt; &lt;/entry&gt; &lt;/feed&gt; </code></pre></section> <section><h3 id="v4-api_5" data-text="v4 API" tabindex="-1">v4 API</h3><p>The <a href="/sheets/api/reference/rest/v4/spreadsheets/get">spreadsheets.get</a> method can be used to acquire sheet properties and other metadata&mdash;much more than what is available using the Sheets API v3. If you only want to read the sheet properties, set the <code translate="no" dir="ltr">includeGridData</code> query parameter to <code translate="no" dir="ltr">false</code> to prevent the inclusion of the spreadsheet cell data:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>?includeGridData=false</pre> <p>The <a href="/sheets/api/reference/rest/v4/spreadsheets#resource-spreadsheet"><code translate="no" dir="ltr">Spreadsheet</code></a> response contains an array of <a href="/sheets/api/reference/rest/v4/spreadsheets#sheet"><code translate="no" dir="ltr">Sheet</code></a> objects; the sheet titles and size information specifically can be found under the <a href="/sheets/api/reference/rest/v4/spreadsheets#sheetproperties"><code translate="no" dir="ltr">SheetProperties</code></a> element of these objects. For example:</p> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "spreadsheetId": <var translate="no">spreadsheetId</var>, "sheets": [ {"properties": { "sheetId": <var translate="no">sheetId</var>, "title": "Sheet1", "index": 0, "gridProperties": { "rowCount": 100, "columnCount": 20, "frozenRowCount": 1, "frozenColumnCount": 0, "hideGridlines": false }, ... }, ... }, ... ], ... }</pre></section> </div> <h3 id="add_a_sheet_to_a_spreadsheet" data-text="Add a sheet to a spreadsheet" tabindex="-1">Add a sheet to a spreadsheet</h3> <p>Both APIs allow you to add new sheets to an existing spreadsheet.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_6" data-text="v3 API" tabindex="-1">v3 API</h3><p>The Sheets API v3 can add new worksheets to a spreadsheet by making the following (authenticated) <code translate="no" dir="ltr">POST</code> request. You can specify the size of the new sheet:</p> <pre class="notranslate" translate="no" dir="ltr">POST https://spreadsheets.google.com/feeds/worksheets/<var translate="no">spreadsheetId</var>/private/full</pre> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;entry xmlns=&#34;http://www.w3.org/2005/Atom&#34; xmlns:gs=&#34;http://schemas.google.com/spreadsheets/2006&#34;&gt; &lt;title&gt;Expenses&lt;/title&gt; &lt;gs:rowCount&gt;50&lt;/gs:rowCount&gt; &lt;gs:colCount&gt;10&lt;/gs:colCount&gt; &lt;/entry&gt; </code></pre></section> <section><h3 id="v4-api_6" data-text="v4 API" tabindex="-1">v4 API</h3><p>You can add new sheets by making an <a href="/sheets/api/reference/rest/v4/spreadsheets/request#addsheetrequest">AddSheet</a> request in the <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate">spreadsheets.batchUpdate</a> method. As part of request body, you can specify the sheet properties for the new sheet; all properties are optional. It is an error to provide a title that is used for an existing sheet.</p> <pre class="notranslate" translate="no" dir="ltr">POST https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>:batchUpdate</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "requests": [{ "addSheet": { "properties": { "title": "Expenses", "sheetType": "GRID", "gridProperties": { "rowCount": 50, "columnCount": 10 } } } }], }</pre></section> </div> <h3 id="change_a_sheet_title_and_size" data-text="Change a sheet title and size" tabindex="-1">Change a sheet title and size</h3> <p>The Sheets API v3 lets you update sheet titles and size; the Sheets API v4 allows this as well, but can also be used to update other sheet properties. Note that reducing a sheet&#39;s size may cause data in the cropped cells to be deleted without warning.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_7" data-text="v3 API" tabindex="-1">v3 API</h3><p>To change the title or size of a worksheet, begin by retrieving the <a href="/sheets/api/guides/migration#retrieve_sheet_metadata">worksheet feed</a> and finding the desired worksheet entry, which contains an <code translate="no" dir="ltr">edit</code> URL. Update the worksheet&#39;s metadata and send it as the body of a <code translate="no" dir="ltr">PUT</code> request to the edit URL. For example:</p> <pre class="notranslate" translate="no" dir="ltr">PUT https://spreadsheets.google.com/feeds/worksheets/<var translate="no">spreadsheetId</var>/private/full/<var translate="no">sheetId</var>/version</pre> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;entry&gt; &lt;id&gt; https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId &lt;/id&gt; &lt;updated&gt;2007-07-30T18:51:30.666Z&lt;/updated&gt; &lt;category scheme=&#34;http://schemas.google.com/spreadsheets/2006&#34; term=&#34;http://schemas.google.com/spreadsheets/2006#worksheet&#34;/&gt; &lt;title type=&#34;text&#34;&gt;Expenses&lt;/title&gt; &lt;content type=&#34;text&#34;&gt;Expenses&lt;/content&gt; &lt;link rel=&#34;http://schemas.google.com/spreadsheets/2006#listfeed&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full&#34;/&gt; &lt;link rel=&#34;http://schemas.google.com/spreadsheets/2006#cellsfeed&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full&#34;/&gt; &lt;link rel=&#34;self&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId&#34;/&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/worksheets/spreadsheetId/private/full/sheetId/version&#34;/&gt; &lt;gs:rowCount&gt;45&lt;/gs:rowCount&gt; &lt;gs:colCount&gt;15&lt;/gs:colCount&gt; &lt;/entry&gt; </code></pre></section> <section><h3 id="v4-api_7" data-text="v4 API" tabindex="-1">v4 API</h3><p>To update the size, title, and other sheet properties, make an <a href="/sheets/api/reference/rest/v4/spreadsheets/request#updatespreadsheetpropertiesrequest">updateSheetProperties</a> request in the <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate">spreadsheets.batchUpdate</a> method. The <code translate="no" dir="ltr">POST</code> request body should contain the properties to be changed, and the <code translate="no" dir="ltr">fields</code> parameter should explicitly list those properties (if you want to update all properties, use <code translate="no" dir="ltr">fields:&quot;*&quot;</code> as a shorthand for listing them all). For example, the following specifies that the sheet title and size properties should be updated for the sheet with the given ID:</p> <pre class="notranslate" translate="no" dir="ltr">POST https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>:batchUpdate</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "requests": [ { "updateSheetProperties": { "properties": { "sheetId": <var translate="no">sheetId</var>, "title": "Expenses", "gridProperties": { "rowCount": 45, "columnCount": 15, } }, "fields": "title,gridProperties(rowCount,columnCount)" } } ], }</pre> <p>To retrieve a sheet&#39;s <var translate="no">sheetId</var>, use the spreadsheet <a href="/sheets/api/reference/rest/v4/spreadsheets/get">spreadsheets.get</a> method.</p></section> </div> <h3 id="delete_a_sheet" data-text="Delete a sheet" tabindex="-1">Delete a sheet</h3> <p>Either API can remove sheets from a given spreadsheet.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_8" data-text="v3 API" tabindex="-1">v3 API</h3><p>To delete a worksheet, begin by retrieving the <a href="/sheets/api/guides/migration#retrieve_sheet_metadata">worksheet feed</a>, then send a <code translate="no" dir="ltr">DELETE</code> request on the <code translate="no" dir="ltr">edit</code> URL of the target worksheet entry.</p> <pre class="notranslate" translate="no" dir="ltr">DELETE https://spreadsheets.google.com/feeds/worksheets/<var translate="no">spreadsheetId</var>/private/full/<var translate="no">sheetId</var>/version</pre></section> <section><h3 id="v4-api_8" data-text="v4 API" tabindex="-1">v4 API</h3><p>To delete a sheet, make a <a href="/sheets/api/reference/rest/v4/spreadsheets/request#deletesheetrequest">DeleteSheet</a> request in the <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate">spreadsheets.batchUpdate</a> method. The <code translate="no" dir="ltr">POST</code> request body should only contain the <var translate="no">sheetId</var> for the sheet to be deleted. For example:</p> <pre class="notranslate" translate="no" dir="ltr">POST https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>:batchUpdate</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "requests": [ { "deleteSheet": { "sheetId": <var translate="no">sheetId</var> } } ], }</pre> <p>To retrieve an individual sheet&#39;s <var translate="no">sheetId</var>, use the spreadsheet <a href="/sheets/api/reference/rest/v4/spreadsheets/get">spreadsheets.get</a> method.</p></section> </div> <h3 id="retrieve_row_data" data-text="Retrieve row data" tabindex="-1">Retrieve row data</h3> <p>The <em>list rows feed</em> is one of the two methods the Sheets API v3 provides to access data within a spreadsheet&#39;s cells (the other being the <em>cells feed</em>). The rows feed is meant to support common spreadsheet operations (reading row by row, appending rows, sorting), but makes certain assumptions that make it unsuitable for some tasks. Specifically, the list feed assumes that blank rows are feed terminations, and that mandatory headers are present in the first row of a sheet.</p> <p>In contrast, the Sheets API v4 does not use access methods that are row-specific. Instead, sheet cell data is accessed by referencing the specific ranges required using <a href="/sheets/api/guides/concepts#a1_notation">A1 notation</a>. The ranges can be blocks of cells, entire rows, entire columns, or entire sheets. The API can also access disjoint sets of cells.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_9" data-text="v3 API" tabindex="-1">v3 API</h3><p> To determine the URL of a list-based feed for a given worksheet, retrieve the <a href="/sheets/api/guides/migration#retrieve_sheet_metadata">worksheet feed</a> and find the list feed URL in the worksheet entry of interest.</p> <p>To retrieve a list-based feed, send a <code translate="no" dir="ltr">GET</code> request to the list feed URL, using an appropriate authorization header. For example:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/list/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full</pre> <p>The response to this request contain, among other things, entries corresponding to specific rows. Individual cells are referenced by the names provided in the (mandatory) sheet header row. For example, here is a single row entry:</p> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;entry gd:etag=&#39;&#34;S0wCTlpIIip7ImA0X0QI&#34;&#39;&gt; &lt;id&gt;rowId&lt;/id&gt; &lt;updated&gt;2006-11-17T18:23:45.173Z&lt;/updated&gt; &lt;category scheme=&#34;http://schemas.google.com/spreadsheets/2006&#34; term=&#34;http://schemas.google.com/spreadsheets/2006#list&#34;/&gt; &lt;title type=&#34;text&#34;&gt;Bingley&lt;/title&gt; &lt;content type=&#34;text&#34;&gt;Hours: 10, Items: 2, IPM: 0.0033&lt;/content&gt; &lt;link rel=&#34;self&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId&#34;/&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version&#34;/&gt; &lt;gsx:name&gt;Bingley&lt;/gsx:name&gt; &lt;gsx:hours&gt;10&lt;/gsx:hours&gt; &lt;gsx:items&gt;2&lt;/gsx:items&gt; &lt;gsx:ipm&gt;0.0033&lt;/gsx:ipm&gt; &lt;/entry&gt; </code></pre> <p>By default the rows returned in the list feed are returned in row order. The Sheets API v3 provides query parameters to change that order.</p> <p>Reverse order:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/list/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full?reverse=true</pre> <p>Order by a specific column:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/list/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full ?orderby=column:lastname</pre> <p>The Sheets API v3 also allows filtering of specific rows via a structured query (referenced by column headers):</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/list/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full ?sq=age>25%20and%20height&lt;175</pre></section> <section><h3 id="v4-api_9" data-text="v4 API" tabindex="-1">v4 API</h3><p>With the Sheets API v4, rows can be retrieved by range using the <a href="/sheets/api/reference/rest/v4/spreadsheets.values/get">spreadsheets.values.get</a> or <a href="/sheets/api/reference/rest/v4/spreadsheets.values/batchGet">spreadsheets.values.batchGet</a> methods. For example, the following returns all rows in &quot;Sheet1&quot;:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>/values/Sheet1</pre> <p>The response to this request has a structure similar to:</p> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "range": "Sheet1", "majorDimension": "ROWS", "values": [["Name", "Hours", "Items", "IPM"], ["Bingley", "10", "2", "0.0033"], ["Darcy", "14", "6", "0.0071"]] }</pre> <p>Trailing empty cells are not included in the response when retrieving entire rows, columns, or sheets.</p> <p>The Sheets API v4 does not have equivalents for the row-order query parameters provided by the Sheets API v3. Reverse-order is trivial; simply process the returned <code translate="no" dir="ltr">values</code> array in reverse order. Order by column is not supported for reads, but it is possible to sort the data in the sheet (using a <a href="/sheets/api/reference/rest/v4/spreadsheets/request#sortrangerequest">SortRange</a>) request and then read it.</p> <p>The Sheets API v4 does not currently have a direct equivalent for the Sheets API v3 structured queries. However, you can retrieve the relevant data and sort through it as needed in your application.</p></section> </div> <h3 id="add_a_new_row_of_data" data-text="Add a new row of data" tabindex="-1">Add a new row of data</h3> <p>You can add a new row of data to a sheet using either API.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_10" data-text="v3 API" tabindex="-1">v3 API</h3><p>To determine the URL of a list-based feed for a given worksheet, retrieve the <a href="/sheets/api/guides/migration#retrieve_sheet_metadata">worksheet feed</a> and find the post URL in the worksheet entry of interest.</p> <p>To add a row of data, send a <code translate="no" dir="ltr">POST</code> request to the post URL, using an appropriate authorization header. For example:</p> <pre class="notranslate" translate="no" dir="ltr">POST https://spreadsheets.google.com/feeds/list/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full</pre> <p>The body of the <code translate="no" dir="ltr">POST</code> request should contain an entry for the row data to add, with individual cells referenced by column headers:</p> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;entry xmlns=&#34;http://www.w3.org/2005/Atom&#34; xmlns:gsx=&#34;http://schemas.google.com/spreadsheets/2006/extended&#34;&gt; &lt;gsx:hours&gt;2&lt;/gsx:hours&gt; &lt;gsx:ipm&gt;0.5&lt;/gsx:ipm&gt; &lt;gsx:items&gt;60&lt;/gsx:items&gt; &lt;gsx:name&gt;Elizabeth&lt;/gsx:name&gt; &lt;/entry&gt; </code></pre> <p>New rows are appended to the end of the specified sheet.</p></section> <section><h3 id="v4-api_10" data-text="v4 API" tabindex="-1">v4 API</h3><p>With the Sheets API v4, you can append rows using the <a href="/sheets/api/reference/rest/v4/spreadsheets.values/append">spreadsheets.values.append</a> method. The following example writes a new row of data below the last table in &quot;Sheet1&quot; of a spreadsheet. <pre class="notranslate" translate="no" dir="ltr">POST https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>/append/Sheet1</pre></p> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "values": [["Elizabeth", "2", "0.5", "60"]] }</pre> <p>Additionally, the Sheets API v4 also lets you append cells with specific properties and formatting using the <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate#appendcellsrequest">AppendCells</a> requests in a <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate">spreadsheets.batchUpdate</a>.</p></section> </div> <h3 id="edit_a_row_with_new_data" data-text="Edit a row with new data" tabindex="-1">Edit a row with new data</h3> <p>Both APIs allow row data to be updated with new values.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_11" data-text="v3 API" tabindex="-1">v3 API</h3><p>To edit a row of data, examine the <a href="/sheets/api/guides/migration#retrieve_row_data">list feed</a> to locate the entry for the row you wish to update. Update the contents of that entry as needed. Be sure that the ID value in the entry you use exactly matches the ID of the existing entry.</p> <p>Once the entry has been updated, send a <code translate="no" dir="ltr">PUT</code> request with the entry as the request body to the <code translate="no" dir="ltr">edit</code> URL provided in that row entry, using an appropriate authorization header. For example:</p> <pre class="notranslate" translate="no" dir="ltr">PUT https://spreadsheets.google.com/feeds/list/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full/<var translate="no">rowId</var>/version</pre> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;entry gd:etag=&#39;&#34;S0wCTlpIIip7ImA0X0QI&#34;&#39;&gt; &lt;id&gt;rowId&lt;/id&gt; &lt;updated&gt;2006-11-17T18:23:45.173Z&lt;/updated&gt; &lt;category scheme=&#34;http://schemas.google.com/spreadsheets/2006&#34; term=&#34;http://schemas.google.com/spreadsheets/2006#list&#34;/&gt; &lt;title type=&#34;text&#34;&gt;Bingley&lt;/title&gt; &lt;content type=&#34;text&#34;&gt;Hours: 10, Items: 2, IPM: 0.0033&lt;/content&gt; &lt;link rel=&#34;self&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId&#34;/&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/list/spreadsheetId/sheetId/private/full/rowId/version&#34;/&gt; &lt;gsx:name&gt;Bingley&lt;/gsx:name&gt; &lt;gsx:hours&gt;20&lt;/gsx:hours&gt; &lt;gsx:items&gt;4&lt;/gsx:items&gt; &lt;gsx:ipm&gt;0.0033&lt;/gsx:ipm&gt; &lt;/entry&gt; </code></pre></section> <section><h3 id="v4-api_11" data-text="v4 API" tabindex="-1">v4 API</h3><p> With Sheets API v4, you can edit a row using the <a href="/sheets/api/guides/concepts#a1_notation">A1 notation</a> of the row you wish to edit and issuing a <a href="/sheets/api/reference/rest/v4/spreadsheets.values/update">spreadsheets.values.update</a> request to overwrite that row. The range specified need only refer to the first cell in the row; the API infers the cells to update based on the values provided with the request. If you instead specify a multi-cell range, the values you provide must fit within that range; if not the API returns an error.</p> <p>The following example request and request body adds data to the fourth row of &quot;Sheet1&quot;:</p> <pre class="notranslate" translate="no" dir="ltr">PUT https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>/values/Sheet1!A4</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "values": [["Elizabeth", "2", "0.5", "60"]] }</pre> <p>You can also update row data from the <a href="/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate">spreadsheet.values.batchUpdate</a> method; it is more efficient to use this method if you are making multiple row or cell updates.</p> <p>Additionally, the Sheets API v4 also lets you edit the cell properties and formatting of cells using the <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate#updatecellsrequest">UpdateCells</a> or <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate#repeatcellrequest">RepeatCell</a> requests in a <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate">spreadsheets.batchUpdate</a>.</p></section> </div> <h3 id="delete_a_row" data-text="Delete a row" tabindex="-1">Delete a row</h3> <p>Both APIs support the deletion of rows. A deleted row is removed from the spreadsheet, and rows below it are pushed up one.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_12" data-text="v3 API" tabindex="-1">v3 API</h3><p>To delete a row, first retrieve the row to delete from the <a href="/sheets/api/guides/migration#retrieve_row_data">list feed</a>, then send a <code translate="no" dir="ltr">DELETE</code> request to the <code translate="no" dir="ltr">edit</code> URL provided in the row&#39;s entry. This is the same URL used to update the row.</p> <pre class="notranslate" translate="no" dir="ltr">DELETE https://spreadsheets.google.com/feeds/list/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full/<var translate="no">rowId</var>/version</pre> <p>If you want to make sure that you don&#39;t delete a row that has been changed by another client since you retrieved it, include an HTTP If-Match header that contains the original row&#39;s ETag value. You can determine the original row&#39;s ETag value by examining the entry element&#39;s gd:etag attribute.</p> <p>If you want to delete the row regardless of whether someone else has updated it since you retrieved it, then use If-Match: * and don&#39;t include the ETag. (In this case, you don&#39;t need to retrieve the row before deleting it.)</p></section> <section><h3 id="v4-api_12" data-text="v4 API" tabindex="-1">v4 API</h3><p>Deleting rows with the Sheets API v4 is handled by a <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate">spreadsheet.batchUpdate</a> method call, using a <a href="/sheets/api/reference/rest/v4/spreadsheets/batchUpdate#deletedimensionrequest">DeleteDimension</a> request. This request can also be used to remove columns, and developers and choose to only remove part of a row or column. For example, the following removes the 6th row of a sheet with the given ID (the row indices are zero-based, with the startIndex inclusive and endIndex exclusive):</p> <pre class="notranslate" translate="no" dir="ltr">POST https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>:batchUpdate</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "requests": [ { "deleteDimension": { "range": { "sheetId": <var translate="no">sheetId</var>, "dimension": "ROWS", "startIndex": 5, "endIndex": 6 } } } ], }</pre> <p>A sheet&#39;s <var translate="no">sheetId</var> can be retrieved using the <a href="/sheets/api/reference/rest/v4/spreadsheets/get">spreadsheet.get</a> method.</p></section> </div> <h3 id="retrieve_cell_data" data-text="Retrieve cell data" tabindex="-1">Retrieve cell data</h3> <p>The Sheets API v3 provides a cell feed for basic access to all data stored in a spreadsheet. For read access, the cell feed can provide the entire sheet content or a range of the sheet&#39;s cells defined by a set of query parameters, but only as a single block&mdash;disjoint ranges have to be retrieved separately using additional <code translate="no" dir="ltr">GET</code> requests.</p> <p>The Sheets API v4 can retrieve any set of cell data from a sheet (including multiple disjoint ranges). The Sheets API v3 can only return cell contents as input values (as would be entered by a user at a keyboard) and/or the outputs of formula (if numeric); the Sheets API v4 grants full access to values, formulas, formatting, hyperlinks, data validation, and other properties.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_13" data-text="v3 API" tabindex="-1">v3 API</h3><p>To determine the URL of a cell-based feed for a given worksheet, examine the <a href="/sheets/api/guides/migration#retrieve_sheet_metadata">worksheet feed</a> and find the cell feed URL in the worksheet entry of interest.</p> <p>To retrieve a cell-based feed, send a <code translate="no" dir="ltr">GET</code> request to the cell feed URL, using an appropriate authorization header. For example:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/cells/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full</pre> <p>Cells are referenced using row and column number. Fetching a single specific range can be done by using <code translate="no" dir="ltr">max-row</code>, <code translate="no" dir="ltr">min-row</code>, <code translate="no" dir="ltr">max-col</code> and <code translate="no" dir="ltr">min-col</code> query parameters. For example, the following retrieves all cells in column 4 (D), starting with row 2:</p> <pre class="notranslate" translate="no" dir="ltr">GET https://spreadsheets.google.com/feeds/cells/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full ?min-row=2&min-col=4&max-col=4</pre> <p>The Sheets API v3 returns the <code translate="no" dir="ltr">inputValue</code> of retrieved cells&mdash;the value that a user would otherwise type into the Google Sheets user interface to manipulate the cell. The <code translate="no" dir="ltr">inputValue</code> can be a literal value or a formula. The API also sometimes returns a <code translate="no" dir="ltr">numericValue</code>; for example, when a formula results in a number. For example, a response may include cell entries similar in structure to the following:</p> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;entry gd:etag=&#39;&#34;ImB5CBYSRCp7&#34;&#39;&gt; &lt;id&gt;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4&lt;/id&gt; &lt;updated&gt;2006-11-17T18:27:32.543Z&lt;/updated&gt; &lt;category scheme=&#34;http://schemas.google.com/spreadsheets/2006&#34; term=&#34;http://schemas.google.com/spreadsheets/2006#cell&#34;/&gt; &lt;title type=&#34;text&#34;&gt;D4&lt;/title&gt; &lt;content type=&#34;text&#34;&gt;5&lt;/content&gt; &lt;link rel=&#34;self&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4&#34;/&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R9C4/srevc&#34;/&gt; &lt;gs:cell row=&#34;4&#34; col=&#34;4&#34; inputValue=&#34;=FLOOR(C4/(B4*60),.0001)&#34; numericValue=&#34;5.0&#34;&gt;5&lt;/gs:cell&gt; &lt;/entry&gt; </code></pre></section> <section><h3 id="v4-api_13" data-text="v4 API" tabindex="-1">v4 API</h3><p>Retrieve cell data by calling a <a href="/sheets/api/reference/rest/v4/spreadsheets.values/get">spreadsheets.values.get</a> or <a href="/sheets/api/reference/rest/v4/spreadsheets.values/batchGet">spreadsheets.values.batchGet</a> method for the range or ranges of interest, respectively. For example, the following returns the cells in column D of &quot;Sheet2&quot;, starting with row 2, in column-major order and returning formulas as entered (trailing empty cells are omitted):</p> <pre class="notranslate" translate="no" dir="ltr">GET https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>/values/Sheet2!D2:D?majorDimension=COLUMNS&valueRenderOption=FORMULA</pre> <p>The response to this request is similar in structure to:</p> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "spreadsheetId": <var translate="no">spreadsheetId</var>, "valueRanges": [ {"range": "Sheet2!D2:D", "majorDimension": "COLUMNS", "values": [["Widget", 234, "=FLOOR(C4/(B4*60),.0001)", "=D4\*1000"]] }] }</pre> <p>It is more efficient to use <a href="/sheets/api/reference/rest/v4/spreadsheets.values/batchGet">spreadsheet.values.batchGet</a> if you intend to retrieve multiple ranges of cell data. If you want to access cell properties such as formatting, the <a href="/sheets/api/reference/rest/v4/spreadsheets/get">spreadsheet.get</a> method is required.</p></section> </div> <h3 id="edit_a_cell" data-text="Edit a cell" tabindex="-1">Edit a cell</h3> <p>The Sheets API v3 lets you edit cell content by issuing a <code translate="no" dir="ltr">PUT</code> command to the cell feed with the modified cell entry as the request body.</p> <p>The Sheets API v4, in contrast, provides <a href="/sheets/api/reference/rest/v4/spreadsheets.values/update">spreadsheets.values.update</a> and <a href="/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate">spreadsheets.values.batchUpdate</a> methods for changing cell content.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_14" data-text="v3 API" tabindex="-1">v3 API</h3><p>To edit a single cell&#39;s content, first find the cell&#39;s entry in the <a href="/sheets/api/guides/migration#retrieve_cell_data">cell feed</a>. The entry contains an edit URL. Update the entry to reflect the contents you want the cell to have, and then issue a <code translate="no" dir="ltr">PUT</code> request to the edit url with the updated cell entry as the body of the request. For example, the following updates cell D2 (R2C4) to contain a <code translate="no" dir="ltr">SUM</code> formula:</p> <p><pre class="notranslate" translate="no" dir="ltr">PUT https://spreadsheets.google.com/feeds/cells/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full//R2C4/srevc</ore></p> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;entry xmlns=&#34;http://www.w3.org/2005/Atom&#34; xmlns:gs=&#34;http://schemas.google.com/spreadsheets/2006&#34;&gt; &lt;id&gt;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4&lt;/id&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4&#34;/&gt; &lt;gs:cell row=&#34;2&#34; col=&#34;4&#34; inputValue=&#34;=SUM(A1:B6)&#34;/&gt; &lt;/entry&gt; </code></pre></section> <section><h3 id="v4-api_14" data-text="v4 API" tabindex="-1">v4 API</h3><p>Single cell editing in the Sheets API v4 can be done with the <a href="/sheets/api/reference/rest/v4/spreadsheets.values/update">spreadsheets.values.update</a> method. This method requires a <code translate="no" dir="ltr">ValueInputOption</code> query parameter, which specifies whether the input data is treated as if entered into the Sheets UI (<code translate="no" dir="ltr">USER_ENTERED</code>), or left unparsed and taken as is (<code translate="no" dir="ltr">RAW</code>). For example, the following updates cell D2 with a formula:</p> <pre class="notranslate" translate="no" dir="ltr">PUT https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>/values/D2?valueInputOption=USER_ENTERED</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{"values": [["=SUM(A1:B6)"]]}</pre> <p>If you are making multiple cell edits, use the <a href="/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate">spreadsheets.values.batchUpdate</a> method to issue them in one request.</p></section> </div> <h3 id="edit_multiple_cells_via_batch_request" data-text="Edit multiple cells via batch request" tabindex="-1">Edit multiple cells via batch request</h3> <p>Both APIs provide the means to make changes to the content of multiple cells with a single (batch) request. The cells referred to by a batch request are not required to be in a contingous range.</p> <p>In the case where one or more of the cell edits in the batch fail, the Sheets API v3 allows others to succeed. However, the Sheets API v4 returns an error if any of the batched updates fail, and does not apply any of them in that case.</p> <div class="ds-selector-tabs" data-ds-scope="code-sample"> <section><h3 id="v3-api_15" data-text="v3 API" tabindex="-1">v3 API</h3><p>To edit multiple cells, first retrieve a <a href="/sheets/api/guides/migration#retrieve_cell_data">cell feed</a> for the worksheet. The entry contains a batch URL. Send a <code translate="no" dir="ltr">POST</code> request to this URL, along with a request body describing the cells you wish to update and the new cell content. The <code translate="no" dir="ltr">POST</code> request and request body have a structure similar to the following:</p> <pre class="notranslate" translate="no" dir="ltr">POST https://spreadsheets.google.com/feeds/cells/<var translate="no">spreadsheetId</var>/<var translate="no">sheetId</var>/private/full/batch</pre> <pre class="prettyprint" translate="no" dir="ltr"><code translate="no" dir="ltr">&lt;feed xmlns=&#34;http://www.w3.org/2005/Atom&#34; xmlns:batch=&#34;http://schemas.google.com/gdata/batch&#34; xmlns:gs=&#34;http://schemas.google.com/spreadsheets/2006&#34;&gt; &lt;id&gt;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full&lt;/id&gt; &lt;entry&gt; &lt;batch:id&gt;request1&lt;/batch:id&gt; &lt;batch:operation type=&#34;update&#34;/&gt; &lt;id&gt;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4&lt;/id&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C4/version&#34;/&gt; &lt;gs:cell row=&#34;2&#34; col=&#34;4&#34; inputValue=&#34;newData&#34;/&gt; &lt;/entry&gt; ... &lt;entry&gt; &lt;batch:id&gt;request2&lt;/batch:id&gt; &lt;batch:operation type=&#34;update&#34;/&gt; &lt;id&gt;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5&lt;/id&gt; &lt;link rel=&#34;edit&#34; type=&#34;application/atom+xml&#34; href=&#34;https://spreadsheets.google.com/feeds/cells/spreadsheetId/sheetId/private/full/R2C5/version&#34;/&gt; &lt;gs:cell row=&#34;5&#34; col=&#34;2&#34; inputValue=&#34;moreInfo&#34;/&gt; &lt;/entry&gt; &lt;/feed&gt; </code></pre> <p>The <code translate="no" dir="ltr">batch:id</code> field should uniquely identify the request within the batch. The <code translate="no" dir="ltr">batch:operation</code> field should be <code translate="no" dir="ltr">update</code> for cell edits. <code translate="no" dir="ltr">gs:cell</code> identifies the cell by row and column number and provides the new data to insert there. <code translate="no" dir="ltr">id</code> contains the full URL to the cell to be updated. <code translate="no" dir="ltr">link</code> must have a <code translate="no" dir="ltr">href</code> attribute that contains the full path to the cell&#39;s ID. All of these fields are required for each entry.</p></section> <section><h3 id="v4-api_15" data-text="v4 API" tabindex="-1">v4 API</h3><p>The Sheets API v4 provides batch editing of cell values through the <a href="/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate">spreadsheets.values.batchUpdate</a> method.</p> <p>Editing multiple cells can be done by issuing a <code translate="no" dir="ltr">POST</code> request with the data changes specified in the request body. For example:</p> <pre class="notranslate" translate="no" dir="ltr">POST https://sheets.googleapis.com/v4/spreadsheets/<var translate="no">spreadsheetId</var>/values:batchUpdate</pre> <pre class="prettyprint notranslate" translate="no" dir="ltr">{ "valueInputOption": "USER_ENTERED" "data": [ {"range": "D4", "majorDimension": "ROWS", "values": [["newData"]] }, {"range": "B5", "majorDimension": "ROWS", "values": [["moreInfo"]] } ] }</pre> <p>If you specified a single cell as the range, all values provided are written to the sheet starting with that cell as the upper-left coordinate. If you instead specify a multi-cell range, the values you provide must fit that range exactly; if not the API returns an error.</p></section> </div> <devsite-hats-survey class="nocontent" hats-id="fS1QvrotT0eGRuQsCn30Rq78ZF6u" listnr-id="717201"></devsite-hats-survey> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Google Sheets" product-id="717201" bucket="sheets" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191608&amp;template=823917" project-icon="https://fonts.gstatic.com/s/i/productlogos/sheets_2020q4/v5/web-64dp/logo_sheets_2020q4_color_1x_web_64dp.png" project-support-url="https://developers.google.com/sheets/api/support" > <button> Send feedback </button> </devsite-feedback> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-11-26 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Google Sheets" product-id="717201" bucket="sheets" context="" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-feedback-url="https://issuetracker.google.com/issues/new?component=191608&amp;template=823917" project-icon="https://fonts.gstatic.com/s/i/productlogos/sheets_2020q4/v5/web-64dp/logo_sheets_2020q4_color_1x_web_64dp.png" project-support-url="https://developers.google.com/sheets/api/support" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-11-26 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Google Workspace Developers Blog" target="_blank" data-category="Workspace Footer" > <picture> <img class="devsite-footer-promo-icon" src="https://www.gstatic.com/images/branding/product/2x/google_cloud_64dp.png" loading="lazy" alt="Blog"> </picture> <span class="devsite-footer-promo-label"> Blog </span> </a> <div class="devsite-footer-promo-description">Read the Google Workspace Developers blog</div> </li> <li class="devsite-footer-promo"> <a href="https://twitter.com/workspacedevs" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Google Workspace on X (Twitter)" target="_blank" data-category="Workspace Footer" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-x.svg" loading="lazy" alt="X (Twitter)"> </picture> <span class="devsite-footer-promo-label"> X (Twitter) </span> </a> <div class="devsite-footer-promo-description">Follow @workspacedevs on X (Twitter)</div> </li> <li class="devsite-footer-promo"> <a href="https://github.com/googleworkspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank" data-category="Workspace Footer" data-label="Promo - Google Workspace Github" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-github.svg" loading="lazy" alt="Code Samples"> </picture> <span class="devsite-footer-promo-label"> Code Samples </span> </a> <div class="devsite-footer-promo-description">Explore our sample apps or copy them to build your own</div> </li> <li class="devsite-footer-promo"> <a href="https://codelabs.developers.google.com/?product=googleworkspace" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank" data-category="Workspace Footer" data-label="Promo - Google Workspace Codelabs" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/developers-logo-color.svg" loading="lazy" alt="Codelabs"> </picture> <span class="devsite-footer-promo-label"> Codelabs </span> </a> <div class="devsite-footer-promo-description">Try a guided, hands-on coding experience</div> </li> <li class="devsite-footer-promo"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Promo - Google Workspace on YouTube" data-category="Workspace Footer" target="_blank" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-youtube.svg" loading="lazy" alt="Videos"> </picture> <span class="devsite-footer-promo-label"> Videos </span> </a> <div class="devsite-footer-promo-description">Subscribe to our YouTube channel</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Google Workspace for Developers</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="/workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Platform overview"data-category="Workspace Footer"> Platform overview </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/products" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Developer products"data-category="Workspace Footer"> Developer products </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/support" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Developer support"data-category="Workspace Footer"> Developer support </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/terms" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Terms of Service"data-category="Workspace Footer"> Terms of Service </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Tools</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://admin.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-category="Workspace Footer"target="admin-console"data-label="Linkbox - Admin console"> Admin console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://script.google.com/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank"data-category="Workspace Footer"data-label="Linkbox - Apps Script Dashboard"> Apps Script Dashboard </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://console.cloud.google.com/workspace-api" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="console"data-category="Workspace Footer"data-label="Linkbox - Google Cloud console"> Google Cloud console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/explore" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - APIs Explorer"data-category="Workspace Footer"> APIs Explorer </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="https://developers.googleblog.com/search/?query=Google+Workspace" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank"data-label="Linkbox - Blog"data-category="Workspace Footer"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/workspace/newsletters" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - Newsletter"data-category="Workspace Footer"> Newsletter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://twitter.com/workspacedevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" target="_blank"data-label="Linkbox - X (Twitter)"data-category="Workspace Footer"> X (Twitter) </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.youtube.com/channel/UCUcg6az6etU_gRtZVAhBXaw" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Linkbox - YouTube"target="_blank"data-category="Workspace Footer"> YouTube </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension3&#34;: false, &#34;dimension1&#34;: &#34;Signed out&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension4&#34;: &#34;Google Sheets&#34;, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension11&#34;: false}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 1}]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}, {&#34;id&#34;: &#34;G-YYP88VSJWR&#34;, &#34;purpose&#34;: 0}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Google Sheets&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="V9sJd0vxMb4j6qYzPlB2xPIMAAK2le"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers","https://developers-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Profiles__enable_dashboard_curated_recommendations","Profiles__enable_recognition_badges","Profiles__enable_completecodelab_endpoint","Cloud__enable_cloud_facet_chat","MiscFeatureFlags__enable_variable_operator","Profiles__enable_developer_profiles_callout","Profiles__enable_page_saving","Search__enable_suggestions_from_borg","Search__enable_ai_search_summaries","Profiles__enable_profile_collections","Cloud__enable_cloudx_experiment_ids","Search__enable_dynamic_content_confidential_banner","Concierge__enable_concierge","Cloud__enable_legacy_calculator_redirect","Concierge__enable_concierge_restricted","EngEduTelemetry__enable_engedu_telemetry","Significatio__enable_by_tenant","Cloud__enable_llm_concierge_chat","MiscFeatureFlags__developers_footer_image","Profiles__require_profile_eligibility_for_signin","CloudShell__cloud_code_overflow_menu","MiscFeatureFlags__enable_view_transitions","Profiles__enable_complete_playlist_endpoint","Analytics__enable_clearcut_logging","Cloud__enable_cloud_shell_fte_user_flow","Cloud__enable_free_trial_server_call","Profiles__enable_release_notes_notifications","Search__enable_page_map","TpcFeatures__enable_mirror_tenant_redirects","BookNav__enable_tenant_cache_key","MiscFeatureFlags__enable_project_variables","MiscFeatureFlags__developers_footer_dark_image","Cloud__enable_cloudx_ping","Experiments__reqs_query_experiments","Profiles__enable_public_developer_profiles","Search__enable_ai_eligibility_checks","CloudShell__cloud_shell_button","Search__enable_ai_search_summaries_restricted","MiscFeatureFlags__enable_explain_this_code","DevPro__enable_developer_subscriptions","Cloud__enable_cloud_shell","Profiles__enable_awarding_url","Concierge__enable_pushui","DevPro__enable_cloud_innovators_plus","TpcFeatures__enable_required_headers","MiscFeatureFlags__emergency_css","Cloud__enable_cloud_dlp_service","MiscFeatureFlags__enable_firebase_utm"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[14,11],[4,3],[13,10],[3,2],[15,12],[12,9],[1,1],[16,13],[5,4],[6,5],[11,8]],[[2,2],[1,1]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10