{"id":3546,"date":"2024-08-11T21:15:00","date_gmt":"2024-08-12T00:15:00","guid":{"rendered":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/?p=3546"},"modified":"2025-09-08T15:00:45","modified_gmt":"2025-09-08T18:00:45","slug":"introducao-a-utilizacao-do-google-planilhas-como-banco-de-dados","status":"publish","type":"post","link":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/2024\/08\/11\/introducao-a-utilizacao-do-google-planilhas-como-banco-de-dados","title":{"rendered":"Introdu\u00e7\u00e3o a utiliza\u00e7\u00e3o do Google Planilhas como Banco de Dados"},"content":{"rendered":"\n<p><span class=\"TextRun SCXW261729304 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261729304 BCX8\">No desenvolvimento de projetos, a gest\u00e3o e o armazenamento de dados s\u00e3o cruciais para a efici\u00eancia e a tomada de decis\u00f5es. Embora existam muitas solu\u00e7\u00f5es especializadas para gerenciamento de banco de dados, a maioria delas exige uma hospedagem paga, muitas vezes inacess\u00edvel para projetos estudantis ou pessoais. Nesse contexto, uma solu\u00e7\u00e3o vi\u00e1vel para armazenar dados de pequenos projetos pode ser o uso do Google <\/span><span class=\"NormalTextRun SCXW261729304 BCX8\">Planilhas<\/span><span class=\"NormalTextRun SCXW261729304 BCX8\">. Embora frequentemente associado \u00e0 cria\u00e7\u00e3o de planilhas, o Google Planilhas tamb\u00e9m pode servir como uma alternativa funcional para o armazenamento e a manipula\u00e7\u00e3o de dados. Este texto explora como utilizar o Google Planilhas <\/span><span class=\"NormalTextRun SCXW261729304 BCX8\">como um banco de dados, aproveitando a <\/span><\/span><span class=\"TextRun SCXW261729304 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261729304 BCX8\">API <\/span><\/span><span class=\"TextRun SCXW261729304 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261729304 BCX8\">do <\/span><\/span><span class=\"TextRun SCXW261729304 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261729304 BCX8\">Google <\/span><span class=\"NormalTextRun SCXW261729304 BCX8\">Sheets<\/span><\/span><span class=\"TextRun SCXW261729304 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261729304 BCX8\"> dispon\u00edvel no <\/span><\/span><span class=\"TextRun SCXW261729304 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261729304 BCX8\">Google Cloud Platform<\/span><\/span><span class=\"TextRun SCXW261729304 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW261729304 BCX8\">.<\/span><\/span><span class=\"EOP SCXW261729304 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p>\u00a0<\/p>\n<h2><span class=\"TextRun SCXW177844612 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW177844612 BCX8\">Google Planilhas como Banco de Dados<\/span><\/span><span class=\"EOP SCXW177844612 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h2>\n<p><span class=\"TextRun SCXW106021173 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW106021173 BCX8\">O Google Planilhas oferece uma interface intuitiva para a cria\u00e7\u00e3o e manipula\u00e7\u00e3o de planilhas, e sua flexibilidade permite que ele funcione de maneira eficaz como um banco de dados leve. Com a capacidade de organizar dados em linhas e colunas, o Google Planilhas facilita o armazenamento de informa\u00e7\u00f5es estruturadas, como registros de clientes, invent\u00e1rio de produtos ou dados de pesquisa. Ao utiliz\u00e1-lo como banco de dados, sua estrutura pode ser associada \u00e0 de um Sistema de Gerenciamento de Banco de Dados (SGBD) convencional, com as p\u00e1ginas da planilha representando as tabelas e suas colunas equivalentes \u00e0s colunas de um SGBD, onde cada linha da planilha representa um registro espec\u00edfico da p\u00e1gina.<\/span><\/span><span class=\"EOP SCXW106021173 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p>\u00a0<\/p>\n<h2><span class=\"TextRun SCXW204560044 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW204560044 BCX8\">API do Google Planilhas<\/span><\/span><span class=\"EOP SCXW204560044 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h2>\n<p><span class=\"TextRun SCXW109581868 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW109581868 BCX8\">Para interagir programaticamente com o Google Planilhas e utilizar suas funcionalidades como um banco de dados, \u00e9 necess\u00e1rio usar a API do Google Planilhas. A API permite que desenvolvedores acessem e modifiquem planilhas do Google de maneira automatizada. A seguir, descrevemos o processo b\u00e1sico para configurar e usar a API em seu projeto, atrav\u00e9s da Google Cloud Platform:<\/span><\/span><span class=\"EOP SCXW109581868 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ol>\n<li><b><span data-contrast=\"auto\">Configura\u00e7\u00e3o do Google Cloud Platform (GCP)<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Criar um Projeto<\/span><\/b><span data-contrast=\"auto\">:\u00a0 Acesse o Google Cloud Console, e crie um novo projeto ou use um existente.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Ativar a API do Google Sheets<\/span><\/b><span data-contrast=\"auto\">: No painel do projeto, v\u00e1 at\u00e9 a se\u00e7\u00e3o de APIs e servi\u00e7os e ative a API do Google Sheets.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Configurar Credenciais<\/span><\/b><span data-contrast=\"auto\">: Gere credenciais apropriadas (chave de API ou OAuth 2.0) para acessar a API. Dependendo do seu uso, voc\u00ea pode precisar configurar o OAuth 2.0 se for acessar dados em nome de um usu\u00e1rio.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Autentica\u00e7\u00e3o e permiss\u00f5es<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Autentica\u00e7\u00e3o<\/span><\/b><span data-contrast=\"auto\">: Utilize as credenciais geradas para autenticar suas requisi\u00e7\u00f5es \u00e0 API. Se estiver usando OAuth 2.0, o processo de autentica\u00e7\u00e3o ser\u00e1 mais complexo, pois envolver\u00e1 consentimento do usu\u00e1rio.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Permiss\u00f5es<\/span><\/b><span data-contrast=\"auto\">: Defina permiss\u00f5es para garantir que sua aplica\u00e7\u00e3o possa ler e\/ou escrever dados nas planilhas conforme necess\u00e1rio.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ol>\n<p>\u00a0<\/p>\n<h2><span class=\"TextRun SCXW150058057 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW150058057 BCX8\">Integra\u00e7\u00e3o com a API<\/span><\/span><span class=\"EOP SCXW150058057 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Para exemplificar a integra\u00e7\u00e3o neste texto, ser\u00e1 utilizado o Laravel, um framework da linguagem PHP, por\u00e9m, a integra\u00e7\u00e3o da API pode ser feita em diversas outras linguagens e mant\u00e9m um certo padr\u00e3o.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Para integrar o Google Planilhas com uma aplica\u00e7\u00e3o Laravel, voc\u00ea pode usar a biblioteca google\/apiclient para PHP. Aqui est\u00e1 um exemplo b\u00e1sico de como configurar e usar a API do Google Sheets em Laravel:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"4\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Instala\u00e7\u00e3o na Biblioteca: <\/span><\/b>Para come\u00e7ar, \u00e9 necess\u00e1rio instalar a biblioteca google\/apiclient via Composer: <code>composer require google\/apiclient<span style=\"font-size: revert;color: initial\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"5\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><b><span data-contrast=\"auto\">Configura\u00e7\u00e3o: <\/span><\/b>A seguir, deve-se criar um servi\u00e7o para interagir com a API. As credenciais devem ser colocadas no arquivo <span style=\"font-size: revert;color: initial\" data-contrast=\"auto\">.env<\/span><span style=\"font-size: revert;color: initial\" data-contrast=\"auto\"> e podem ser configuradas no `<\/span><span style=\"font-size: revert;color: initial\" data-contrast=\"auto\">config\/services.php<\/span><span style=\"font-size: revert;color: initial\" data-contrast=\"auto\">`<\/span><span style=\"font-size: revert;color: initial\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-contrast=\"auto\">O c\u00f3digo dentro do arquivo <\/span><span data-contrast=\"auto\">services.php<\/span><span data-contrast=\"auto\"> deve ficar da seguinte maneira:<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><code><span data-contrast=\"auto\">return [<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 'google' =&gt; [<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'client_id' =&gt; env('GOOGLE_CLIENT_ID'),<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'client_secret' =&gt; env('GOOGLE_CLIENT_SECRET'),<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'redirect' =&gt; env('GOOGLE_REDIRECT'),<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 ],<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">];<\/span><\/code><\/p>\n<p>\u00a0<\/p>\n<h2><span class=\"TextRun SCXW34860499 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW34860499 BCX8\">Intera\u00e7\u00e3o com a API<\/span><\/span><span class=\"EOP SCXW34860499 BCX8\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h2>\n<p><span class=\"TextRun SCXW188955931 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW188955931 BCX8\">Para realizar a intera\u00e7\u00e3o com a planilha, permitindo leitura, inclus\u00e3o, edi\u00e7\u00e3o e exclus\u00e3o de dados, \u00e9 necess\u00e1rio configurar fun\u00e7\u00f5es para que possam realizar cada uma das requisi\u00e7\u00f5es, veja um exemplo de leitura e escrita de dados fazendo a utiliza\u00e7\u00e3o da API em uma aplica\u00e7\u00e3o <\/span><span class=\"NormalTextRun SCXW188955931 BCX8\">Laravel<\/span><span class=\"NormalTextRun SCXW188955931 BCX8\">.<\/span><\/span><span class=\"EOP SCXW188955931 BCX8\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><span class=\"TextRun SCXW162115715 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW162115715 BCX8\"><strong>Leitura de dados: <\/strong><span class=\"TextRun SCXW54178184 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW54178184 BCX8\">Para ler dados, a aplica\u00e7\u00e3o faz requisi\u00e7\u00f5es \u00e0 API especificando o ID da planilha e o intervalo de c\u00e9lulas que devem ser lidas. A resposta retorna os dados <\/span><span class=\"NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW54178184 BCX8\">e\u00a0 podem<\/span><span class=\"NormalTextRun SCXW54178184 BCX8\"> ser processados pela aplica\u00e7\u00e3o. Abaixo veja um exemplo de c\u00f3digo:<\/span><\/span>\u00a0<\/span><\/span><\/p>\n<p><code><span data-contrast=\"auto\">class GoogleSheetsController extends Controller<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">{<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 public function readSheet()<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 {<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client = new Client();<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setApplicationName('Google Sheets API PHP Quickstart');<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setScopes(Sheets::SPREADSHEETS_READONLY);<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setAuthConfig(storage_path('credentials.json'));<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setAccessType('offline');<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $service = new Sheets($client);<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $spreadsheetId = 'YOUR_SPREADSHEET_ID';<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $range = 'Sheet1!A1:D10';<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $response = $service-&gt;spreadsheets_values-&gt;get($spreadsheetId, $range);<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $values = $response-&gt;getValues();<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return view('sheets.index', ['values' =&gt; $values]);<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 }<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">}<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><span class=\"TextRun SCXW234203691 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW234203691 BCX8\">Explica\u00e7\u00e3o do C\u00f3digo:\u00a0<\/span><\/span><span class=\"EOP SCXW234203691 BCX8\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ul>\n<li><b><span data-contrast=\"auto\">Client<\/span><\/b><span data-contrast=\"auto\">: Configura a autentica\u00e7\u00e3o e define o escopo de acesso como leitura (Sheets::SPREADSHEETS_READONLY).<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">AuthConfig<\/span><\/b><span data-contrast=\"auto\">: O caminho para o arquivo de credenciais JSON gerado no Google Cloud Console.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Service<\/span><\/b><span data-contrast=\"auto\">: Cria uma inst\u00e2ncia do servi\u00e7o Google Sheets.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">spreadsheets_values-&gt;get<\/span><\/b><span data-contrast=\"auto\">: Recupera os dados da faixa especificada da planilha.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ul>\n<p><strong><span class=\"TextRun SCXW237300149 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW237300149 BCX8\">Escrita de dados: <\/span><\/span><\/strong><span class=\"TextRun SCXW237300149 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW237300149 BCX8\"><span class=\"TextRun SCXW250933190 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW250933190 BCX8\">Para escrever dados, a aplica\u00e7\u00e3o envia uma requisi\u00e7\u00e3o \u00e0 API com os dados a serem inseridos ou atualizados, especificando a planilha e o intervalo de c\u00e9lulas. A API atualiza a planilha em tempo real. Veja abaixo um exemplo de c\u00f3digo:<\/span><\/span><\/span><\/span><\/p>\n<p><code><span data-contrast=\"auto\">class GoogleSheetsController extends Controller<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">{<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 public function updateSheet()<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 {<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client = new Client();<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setApplicationName('Google Sheets API PHP Quickstart');<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setScopes(Sheets::SPREADSHEETS);<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setAuthConfig(storage_path('credentials.json'));<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $client-&gt;setAccessType('offline');<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $service = new Sheets($client);<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $spreadsheetId = 'YOUR_SPREADSHEET_ID';<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $range = 'Sheet1!A1';<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $values = [<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [\"A\", \"B\", \"C\"],<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 [\"D\", \"E\", \"F\"]<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ];<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $body = new Sheets\\ValueRange([<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'values' =&gt; $values<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ]);<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $params = [<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 'valueInputOption' =&gt; 'RAW'<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ];<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $result = $service-&gt;spreadsheets_values-&gt;update(<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $spreadsheetId,<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $range,<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $body,<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $params<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 );<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return 'Data updated successfully!';<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">\u00a0\u00a0\u00a0 }<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><code><span data-contrast=\"auto\">}<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:720,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/code><\/p>\n<p><span class=\"TextRun SCXW202186332 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW202186332 BCX8\">Explica\u00e7\u00e3o do C\u00f3digo:<\/span><\/span><span class=\"EOP SCXW202186332 BCX8\" data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ul>\n<li><b><span data-contrast=\"auto\">Client<\/span><\/b><span data-contrast=\"auto\">: Configura a autentica\u00e7\u00e3o e define o escopo de acesso de leitura e escrita (Sheets::SPREADSHEETS).<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Body<\/span><\/b><span data-contrast=\"auto\">: Define os dados a serem enviados para a planilha.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">spreadsheets_values-&gt;update<\/span><\/b><span data-contrast=\"auto\">: Atualiza a faixa especificada na planilha com os novos dados.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ul>\n<h2>\u00a0<\/h2>\n<h2><span class=\"TextRun SCXW177478719 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW177478719 BCX8\">Considera\u00e7\u00f5es e Limita\u00e7\u00f5es<\/span><\/span><\/h2>\n<p><span class=\"EOP SCXW177478719 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\"><span class=\"TextRun SCXW5543562 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW5543562 BCX8\">Embora o Google Planilhas ofere\u00e7a uma solu\u00e7\u00e3o pr\u00e1tica para muitos casos, \u00e9 importante estar ciente de suas limita\u00e7\u00f5es. Abaixo est\u00e3o algumas considera\u00e7\u00f5es a serem levadas em conta ao utilizar o Google Planilhas como banco de dados:<\/span><\/span><span class=\"EOP SCXW5543562 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span>\u00a0<\/span><\/p>\n<ol>\n<li><b><span data-contrast=\"auto\">Capacidade e Performance<\/span><\/b><span data-contrast=\"auto\">: O Google Planilhas \u00e9 ideal para projetos pequenos e m\u00e9dios, mas pode n\u00e3o ser a melhor escolha para grandes volumes de dados. Planilhas t\u00eam limites de c\u00e9lulas, e o desempenho pode ser afetado conforme o n\u00famero de registros cresce.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Seguran\u00e7a e Controle de Acesso<\/span><\/b><span data-contrast=\"auto\">: Enquanto o Google Planilhas oferece controle de acesso por meio de permiss\u00f5es de compartilhamento, a seguran\u00e7a dos dados pode n\u00e3o ser t\u00e3o robusta quanto a de sistemas de gerenciamento de banco de dados mais avan\u00e7ados. \u00c9 crucial garantir que as credenciais e os dados sens\u00edveis estejam protegidos adequadamente.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Funcionalidades Avan\u00e7adas<\/span><\/b><span data-contrast=\"auto\">: Recursos como transa\u00e7\u00f5es e relacionamentos entre tabelas s\u00e3o limitados no Google Planilhas. Para projetos que exigem funcionalidades mais complexas, pode ser necess\u00e1rio considerar solu\u00e7\u00f5es de banco de dados mais sofisticadas.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Colabora\u00e7\u00e3o e Sincroniza\u00e7\u00e3o<\/span><\/b><span data-contrast=\"auto\">: Um dos pontos fortes do Google Planilhas \u00e9 a colabora\u00e7\u00e3o em tempo real. No entanto, ao integrar o Google Planilhas com aplica\u00e7\u00f5es externas, \u00e9 importante gerenciar a sincroniza\u00e7\u00e3o e garantir que os dados estejam sempre atualizados e consistentes.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ol>\n<p>\u00a0<\/p>\n<h2><span class=\"TextRun SCXW25282004 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW25282004 BCX8\">Boas Pr\u00e1ticas para Utiliza\u00e7\u00e3o<\/span><\/span><span class=\"EOP SCXW25282004 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h2>\n<p><span class=\"TextRun SCXW35983598 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW35983598 BCX8\">Para garantir que o uso do Google Planilhas como banco de dados seja eficaz e eficiente, considere as seguintes boas pr\u00e1ticas:<\/span><\/span><span class=\"EOP SCXW35983598 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<ol>\n<li><b><span data-contrast=\"auto\">Estrutura Clara<\/span><\/b><span data-contrast=\"auto\">: Mantenha a estrutura da planilha organizada e clara. Use nomes de colunas descritivos e mantenha a consist\u00eancia na formata\u00e7\u00e3o dos dados.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Valida\u00e7\u00e3o de Dados<\/span><\/b><span data-contrast=\"auto\">: Implemente valida\u00e7\u00f5es de dados e regras de neg\u00f3cios diretamente na planilha quando poss\u00edvel para garantir a integridade dos dados.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Backup Regular<\/span><\/b><span data-contrast=\"auto\">: Fa\u00e7a backups regulares das planilhas para evitar a perda de dados em caso de erros ou problemas imprevistos.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<li><b><span data-contrast=\"auto\">Documenta\u00e7\u00e3o<\/span><\/b><span data-contrast=\"auto\">: Documente a estrutura da planilha e qualquer l\u00f3gica ou regras espec\u00edficas para que outros desenvolvedores ou colaboradores possam entender e manter o sistema de forma eficaz.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/li>\n<\/ol>\n<p>\u00a0<\/p>\n<p><span class=\"TextRun SCXW134274343 BCX8\" lang=\"PT-BR\" xml:lang=\"PT-BR\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW134274343 BCX8\">Com isso, pode-se dizer que o Google Planilhas \u00e9 uma ferramenta poderosa e acess\u00edvel que pode servir como uma solu\u00e7\u00e3o de banco de dados para muitos tipos de projetos. Sua integra\u00e7\u00e3o com a API do Google <\/span><span class=\"NormalTextRun SpellingErrorV2Themed SCXW134274343 BCX8\">Sheets<\/span><span class=\"NormalTextRun SCXW134274343 BCX8\"> oferece uma maneira pr\u00e1tica de gerenciar dados, automatizar processos e colaborar com outros usu\u00e1rios. No entanto, \u00e9 fundamental compreender suas limita\u00e7\u00f5es e adotar boas pr\u00e1ticas para garantir que a solu\u00e7\u00e3o atenda \u00e0s necessidades do seu projeto de forma eficiente e segura. Com essas considera\u00e7\u00f5es e boas pr\u00e1ticas, \u00e9 poss\u00edvel aproveitar ao m\u00e1ximo as funcionalidades do Google Planilhas e integr\u00e1-lo com outras ferramentas e tecnologias para atender \u00e0s demandas do seu projeto.<\/span><\/span><span class=\"EOP SCXW134274343 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p style=\"text-align: right\"><strong>Autor: Guilherme Rodrigues Garcia<\/strong><\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>No desenvolvimento de projetos, a gest\u00e3o e o armazenamento de dados s\u00e3o cruciais para a efici\u00eancia e a tomada de decis\u00f5es. Embora existam muitas solu\u00e7\u00f5es especializadas para gerenciamento de banco de dados, a maioria delas exige uma hospedagem paga, muitas vezes inacess\u00edvel para projetos estudantis ou pessoais. Nesse contexto, uma solu\u00e7\u00e3o vi\u00e1vel para armazenar dados [&hellip;]<\/p>\n","protected":false},"author":6950,"featured_media":3547,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[124,112],"tags":[196,149],"class_list":["post-3546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-destaques","category-redacao","tag-back-end-e-bd","tag-redacao"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts\/3546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/users\/6950"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/comments?post=3546"}],"version-history":[{"count":0,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/posts\/3546\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/media\/3547"}],"wp:attachment":[{"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/media?parent=3546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/categories?post=3546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ufsm.br\/pet\/sistemas-de-informacao\/wp-json\/wp\/v2\/tags?post=3546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}