PHPackages                             arindam/gsheet-appscript - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. arindam/gsheet-appscript

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

arindam/gsheet-appscript
========================

A laravel package for access and manage any google sheet

v3.0.0(2y ago)58MITBlade

Since Mar 10Pushed 2y ago1 watchersCompare

[ Source](https://github.com/dev-arindam-roy/laravel-package-google-sheet-appscript)[ Packagist](https://packagist.org/packages/arindam/gsheet-appscript)[ RSS](/packages/arindam-gsheet-appscript/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (5)Used By (0)

LARAVEL PACKAGE - ACCESS GOOGLE SHEET
=====================================

[](#laravel-package---access-google-sheet)

### A laravel package for access and manage any google sheet.

[](#a-laravel-package-for-access-and-manage-any-google-sheet)

Installation
------------

[](#installation)

> **No dependency on PHP version and LARAVEL version**

### STEP 1: Run the composer command:

[](#step-1-run-the-composer-command)

```
composer require arindam/gsheet-appscript
```

### STEP 2: Laravel without auto-discovery:

[](#step-2-laravel-without-auto-discovery)

If you don't use auto-discovery, add the ServiceProvider to the providers array in config/app.php

> In providers section

```
Arindam\GsheetAppScript\GsheetAppScriptServiceProvider::class,
```

> In aliases section

```
'GsheetAppScript' => Arindam\GsheetAppScript\Gsheet\GsheetAppScriptClassFacade::class,
```

### STEP 3: Publish the package config:

[](#step-3-publish-the-package-config)

```
php artisan vendor:publish --provider="Arindam\GsheetAppScript\GsheetAppScriptServiceProvider" --force
-OR-
php artisan vendor:publish --tag="gsheet-appscript:config"
```

### STEP 4: Add Google Sheet AppScript API Url to .env file:

[](#step-4-add-google-sheet-appscript-api-url-to-env-file)

```
GSHEET_APPSCRIPT_API_URL=_YOUR_APP_SCRIPT_API_URL_
```

How to use?: It's Very Easy
---------------------------

[](#how-to-use-its-very-easy)

> **FACADE HELPER FUNCTIONS**

```
use GsheetAppScript;

GsheetAppScript::allRecords(); //get all records from google sheet

GsheetAppScript::addRow(['Text1', 'Text2', 'Text3' ...]); //add row in the google sheet

GsheetAppScript::setHeading(['Heading1', 'Heading2', 'Heading3' ...]); //set or edit heading in the google sheet

GsheetAppScript::editRow(['id' => 4, 'Text1', 'Text2', 'Text3' ...]); //edit data in the google sheet, just pass the row number as id with data

GsheetAppScript::removeRow(['id' => 4]); //remove row from google sheet, just pass the row number

GsheetAppScript::clearSheet(); //delete all records in google sheet
```

> **DIRECT USE BY ROUTE**

 &gt;&gt; `Just install and run the below route ````
Ex: http://your-website/onex/gsheet

Ex: http://localhost:8000/onex/gsheet
```

[![2024-03-10_220306](https://private-user-images.githubusercontent.com/24665327/311525102-185945de-0916-4809-997d-c3f0fa1972eb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MjUxMDItMTg1OTQ1ZGUtMDkxNi00ODA5LTk5N2QtYzNmMGZhMTk3MmViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ5Y2UyNzA2YThkNDBmODUwMTVmZmE0Y2JhOWIyNzg3YjExMzk2ZmVlZTNkYjI5ZmJjNjZhZTRlOGUxYmIzM2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IxcHWe4w-okd5a7DoIngnmtBBnLPT4VffmZlXBgE-Yw)](https://private-user-images.githubusercontent.com/24665327/311525102-185945de-0916-4809-997d-c3f0fa1972eb.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MjUxMDItMTg1OTQ1ZGUtMDkxNi00ODA5LTk5N2QtYzNmMGZhMTk3MmViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ5Y2UyNzA2YThkNDBmODUwMTVmZmE0Y2JhOWIyNzg3YjExMzk2ZmVlZTNkYjI5ZmJjNjZhZTRlOGUxYmIzM2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IxcHWe4w-okd5a7DoIngnmtBBnLPT4VffmZlXBgE-Yw)

#### You can modify the configuration settings in - "config/gsheet-appscript.php":

[](#you-can-modify-the-configuration-settings-in---configgsheet-appscriptphp)

```
/** If you want to disable the route or this feature, then make it false */
'is_route_enabled' => true,
```

```
/** If you want to change the route prefix */
'route_prefix' => 'onex',
```

```
/** If you want to change the route name or path */
'route_name' => 'gsheet',
```

```
/** If you want to change the page heading */
'page_heading' => 'Google Sheet',
```

```
/** If you want to enable the securiry for access the google sheet information
 *  Then make it ('is_enabled') true and also you can set login-id and password through .env
 */
'authentication' => [
    'is_enabled' => env('GSHEET_APPSCRIPT_AUTH_ENABLED', false),
    'login_id' => env('GSHEET_APPSCRIPT_LOGIN_ID', 'onexadmin'),
    'password' => env('GSHEET_APPSCRIPT_LOGIN_PASSWORD', 'onexpassword')
]
```

[![2024-03-10_220503](https://private-user-images.githubusercontent.com/24665327/311525213-f135b6ba-c83d-46a5-aaa1-c8fc7293b714.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MjUyMTMtZjEzNWI2YmEtYzgzZC00NmE1LWFhYTEtYzhmYzcyOTNiNzE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmZGY4ZWUyN2NjZjZlMjYxM2EyZGQ4ZGE4ODNiNWMzYzI3ZjYzNDQ1OWJkNmEzMzljNjFmYzU0ZGQ2MGU1YTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.KDPh-vXBGvBR_UJ2xgscQj22vEEynkuuIXSeZYHMdFg)](https://private-user-images.githubusercontent.com/24665327/311525213-f135b6ba-c83d-46a5-aaa1-c8fc7293b714.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MjUyMTMtZjEzNWI2YmEtYzgzZC00NmE1LWFhYTEtYzhmYzcyOTNiNzE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmZGY4ZWUyN2NjZjZlMjYxM2EyZGQ4ZGE4ODNiNWMzYzI3ZjYzNDQ1OWJkNmEzMzljNjFmYzU0ZGQ2MGU1YTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.KDPh-vXBGvBR_UJ2xgscQj22vEEynkuuIXSeZYHMdFg)

Google AppScript Code:
----------------------

[](#google-appscript-code)

> **Just Copy &amp; paste below code in your google sheet appscript section &amp; get the app url**

```
/** All Get Request */
function doGet() {
  return ContentService.createTextOutput(getAllRows());
}

/** All Post Request */
function doPost(req) {
  let data = JSON.parse(req.postData.contents);
  if(data.actionkey == "SAVE") {
    return ContentService.createTextOutput(addSaveRow(data));
  }
  if(data.actionkey == "UPDATE") {
    return ContentService.createTextOutput(updateSaveRow(data));
  }
  if(data.actionkey == "DELETE") {
    return ContentService.createTextOutput(deleteRow(data));
  }
  if(data.actionkey == "VIEW") {
    return ContentService.createTextOutput(viewRow(data));
  }
  if(data.actionkey == "CLEAR") {
    return ContentService.createTextOutput(clearSheet());
  }
}

/** Add */
function addSaveRow(jsonObjData) {
  if (jsonObjData['actionkey']) {
    delete jsonObjData['actionkey'];
  }
  SpreadsheetApp.getActiveSheet().appendRow(Object.values(jsonObjData));
  return 'SUCCESS';
}

/** Edit */
function getRowId(textId) {
  let findData = SpreadsheetApp.getActiveSheet().createTextFinder(textId).matchEntireCell(true).findNext();
  if(findData) {
    return findData.getRow();
  }
  return 0;
}

/** Update */
function updateSaveRow(jsonObjData) {
  let sheetRowNo = jsonObjData.id;
  if (jsonObjData['actionkey']) {
    delete jsonObjData['actionkey'];
  }
  if (jsonObjData['id']) {
    delete jsonObjData['id'];
  }
  if(sheetRowNo) {
    Object.keys(jsonObjData).forEach(function(key, index) {
      SpreadsheetApp.getActiveSheet().getRange(sheetRowNo, index + 1).setValue(jsonObjData[key]);
    });
    return "SUCCESS";
  }
  return "ERROR";
}

/** View a Record */
function viewRow(jsonObjData) {
  let findData = SpreadsheetApp.getActiveSheet().createTextFinder(jsonObjData.id).matchEntireCell(true).findNext();
  if(findData) {
    return findData;
  }
  return 0;
}

/** Delete */
function deleteRow(jsonObjData) {
  if(jsonObjData.id) {
    SpreadsheetApp.getActiveSheet().deleteRow(jsonObjData.id);
    return "SUCCESS";
  } else {
    return "ERROR";
  }
}

/** Get All */
function getAllRows() {
  let obj = {};
  let data = SpreadsheetApp.getActiveSheet().getDataRange().getValues().filter(row => row.join(""));
  obj = {
    data: data,
    cols: SpreadsheetApp.getActiveSheet().getDataRange().getNumColumns()
  }
  return JSON.stringify(obj);
}

/** Clear All */
function clearSheet() {
  SpreadsheetApp.getActiveSheet().clear({contentsOnly: true});
  return "SUCCESS";
}
```

[![2024-03-10_234040](https://private-user-images.githubusercontent.com/24665327/311534536-90586591-92ea-46ec-b3f8-5b8c730d1743.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MzQ1MzYtOTA1ODY1OTEtOTJlYS00NmVjLWIzZjgtNWI4YzczMGQxNzQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmOTRmYzA2YTBlMTM1OWNhNzQ1Yjk3ZGYzNWZhZjZlMDQyMjI0ZTk5MzU3NjdiOWNmNTYzZjZmZDQ0ZWNkYjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.w87KcOp0wy-Xivw3NZIKNYSrrnFDAek_t93mfu8toWw)](https://private-user-images.githubusercontent.com/24665327/311534536-90586591-92ea-46ec-b3f8-5b8c730d1743.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MzQ1MzYtOTA1ODY1OTEtOTJlYS00NmVjLWIzZjgtNWI4YzczMGQxNzQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmOTRmYzA2YTBlMTM1OWNhNzQ1Yjk3ZGYzNWZhZjZlMDQyMjI0ZTk5MzU3NjdiOWNmNTYzZjZmZDQ0ZWNkYjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.w87KcOp0wy-Xivw3NZIKNYSrrnFDAek_t93mfu8toWw)

[![2024-03-10_234135](https://private-user-images.githubusercontent.com/24665327/311534561-2bec96b5-7f5c-45b4-8524-a4581d1e7f74.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MzQ1NjEtMmJlYzk2YjUtN2Y1Yy00NWI0LTg1MjQtYTQ1ODFkMWU3Zjc0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE2MzkzNDMzMWEwZWYxMmFhNzA3ZTNjOWE3MGVmNmY5MjY1Zjg0OWQ5NTg4YmY0NTJjMjE2MTA0NGM5Yzg3NGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Xzwsc0ZL36G8707NMDenlovRoqr_FnsZgLypipN5PRY)](https://private-user-images.githubusercontent.com/24665327/311534561-2bec96b5-7f5c-45b4-8524-a4581d1e7f74.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU3Mjg2NTQsIm5iZiI6MTc3NTcyODM1NCwicGF0aCI6Ii8yNDY2NTMyNy8zMTE1MzQ1NjEtMmJlYzk2YjUtN2Y1Yy00NWI0LTg1MjQtYTQ1ODFkMWU3Zjc0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA5VDA5NTIzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE2MzkzNDMzMWEwZWYxMmFhNzA3ZTNjOWE3MGVmNmY5MjY1Zjg0OWQ5NTg4YmY0NTJjMjE2MTA0NGM5Yzg3NGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Xzwsc0ZL36G8707NMDenlovRoqr_FnsZgLypipN5PRY)

license:
--------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

Post Issues: if found any
-------------------------

[](#post-issues-if-found-any)

If have any issue please [write me](https://github.com/dev-arindam-roy/laravel-package-google-sheet-appscript/issues).

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

798d ago

Major Versions

v1.0.1 → v2.0.02024-03-10

v2.0.0 → v3.0.02024-03-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/ffd181826d9f6d75df74a8a134488bb2820aa58aa9f99fad3ef6de7af7d8393e?d=identicon)[devarindam](/maintainers/devarindam)

---

Top Contributors

[![dev-arindam-roy](https://avatars.githubusercontent.com/u/24665327?v=4)](https://github.com/dev-arindam-roy "dev-arindam-roy (8 commits)")

---

Tags

google sheetgoogle appscript

### Embed Badge

![Health badge](/badges/arindam-gsheet-appscript/health.svg)

```
[![Health](https://phpackages.com/badges/arindam-gsheet-appscript/health.svg)](https://phpackages.com/packages/arindam-gsheet-appscript)
```

###  Alternatives

[daveross/functional-programming-utils

Functional Programming utilities for PHP 5.4+

225.2k](/packages/daveross-functional-programming-utils)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
