reandimo/google-sheets-helper
Composer 安装命令:
composer require reandimo/google-sheets-helper
包简介
A bunch of functions to work easily with Google Sheets API
README 文档
README
PHP Google Sheets Helper
A powerful, elegant wrapper around Google Sheets API for PHP
Installation • Quick Start • API Reference • Tips • License
Stop wrestling with the verbose Google Sheets API. This library wraps the official Google APIs Client Library for PHP into a clean, fluent interface so you can read, write, and manage spreadsheets in just a few lines of code.
Features
| Feature | Description | |
|---|---|---|
| Read | get() getSingleCellValue() findCellByValue() |
Fetch ranges, single cells, or search by value |
| Write | appendSingleRow() append() updateSingleCell() update() |
Append rows, update cells or entire ranges |
| Sheets | addWorksheet() duplicateWorksheet() renameWorksheet() deleteWorksheet() |
Full worksheet lifecycle management |
| Style | colorRange() clearRange() |
Color cells and clear data |
| Manage | create() getSpreadsheetWorksheets() |
Create spreadsheets and list worksheets |
Requirements
- PHP >= 5.4 with CLI and JSON extension
- A Google Cloud Platform project with the Sheets API enabled
- Credentials (
credentials.json) from the Google Cloud Console
Installation
composer require reandimo/google-sheets-helper
Credentials Setup
The library authenticates using two files: credentials.json (from Google Cloud Console) and token.json (generated on first auth).
Generate token.json by running from your project root:
php ./vendor/reandimo/google-sheets-helper/firstauth
Follow the interactive steps — this only needs to be done once.
Quick Start
use reandimo\GoogleSheetsApi\Helper; // Set credentials via environment (recommended) putenv('credentialFilePath=path/to/credentials.json'); putenv('tokenPath=path/to/token.json'); // Create instance and configure $sheet = new Helper(); $sheet->setSpreadsheetId('your-spreadsheet-id'); $sheet->setWorksheetName('Sheet1'); // Read data $sheet->setSpreadsheetRange('A1:D10'); $data = $sheet->get(); // Write data $sheet->appendSingleRow(['Name', 'Email', 'Role']); // Update a cell $sheet->updateSingleCell('B2', 'john@example.com');
You can also pass credential paths directly to the constructor:
$sheet = new Helper('path/to/credentials.json', 'path/to/token.json');
API Reference
Reading Data
get() — Get values from a range
$sheet->setSpreadsheetRange('A1:C10'); $data = $sheet->get();
getSingleCellValue(string $cell) — Get a single cell value
$value = $sheet->getSingleCellValue('B2'); echo "Value: $value\n";
findCellByValue(string $searchValue) — Search for a value
$sheet->setSpreadsheetRange('A1:Z100'); $result = $sheet->findCellByValue('searchValue'); if ($result) { echo "Found at {$result['cell']} (row {$result['row']}, col {$result['column']})\n"; }
Writing Data
appendSingleRow(array $row) — Append one row
$sheet->setSpreadsheetRange('A1:C1'); $inserted = $sheet->appendSingleRow(['John', 'john@doe.com', 'Admin']); if ($inserted >= 1) { echo 'Row inserted.'; }
append(array $rows) — Append multiple rows
$sheet->setSpreadsheetRange('A1:C1'); $sheet->append([ ['Alice', 'alice@example.com', 'Editor'], ['Bob', 'bob@example.com', 'Viewer'], ['Carol', 'carol@example.com', 'Admin'], ]);
updateSingleCell(string $cell, mixed $value) — Update one cell
$update = $sheet->updateSingleCell('B5', 'Updated value'); if ($update->getUpdatedCells() >= 1) { echo 'Cell updated.'; }
update(array $values) — Update a range
$sheet->setSpreadsheetRange('A1:C3'); $update = $sheet->update([ ['val1', 'val2', 'val3'], ['val4', 'val5', 'val6'], ['val7', 'val8', 'val9'], ]); if ($update->getUpdatedCells() >= 1) { echo 'Range updated.'; }
Worksheet Management
getSpreadsheetWorksheets() — List all worksheets
$worksheets = $sheet->getSpreadsheetWorksheets(); foreach ($worksheets as $ws) { echo "ID: {$ws['id']}, Title: {$ws['title']}\n"; }
addWorksheet(string $title, int $rows, int $cols) — Create a new worksheet
$newSheetId = $sheet->addWorksheet('NewSheet', 100, 10); echo "Created worksheet ID: $newSheetId\n";
duplicateWorksheet(string $newName) — Duplicate a worksheet
$sheet->setWorksheetName('Sheet1'); $sheetId = $sheet->duplicateWorksheet('Sheet1 - Copy'); if ($sheetId) { echo 'Worksheet duplicated.'; }
renameWorksheet(string $oldName, string $newName) — Rename a worksheet
$sheet->renameWorksheet('OldName', 'NewName');
deleteWorksheet(string $name) — Delete a worksheet
$deleted = $sheet->deleteWorksheet('SheetToDelete'); if ($deleted) { echo 'Worksheet deleted.'; }
Styling & Utilities
colorRange(array $rgb) — Set background color
$sheet->setSpreadsheetRange('A1:Z10'); $sheet->colorRange([142, 68, 173]); // Purple background
clearRange() — Clear all values in a range
$sheet->setSpreadsheetRange('A1:Z100'); $sheet->clearRange();
create(string $title) — Create a new spreadsheet
$newId = $sheet->create('My New Spreadsheet'); echo "Spreadsheet ID: $newId\n";
Helper::getColumnLettersIndex(string $letters) — Column letter to index
Helper::getColumnLettersIndex('AZ'); // Returns 52
Tips
Blank cells on insert/update: Use the constant
Google_Model::NULL_VALUEto represent an empty cell.$sheet->appendSingleRow([ 'John Doe', 'john@doe.com', Google_Model::NULL_VALUE, // skip this cell 'Sagittarius', ]);
Multiple sheet instances: Create as many
Helperinstances as you need to work with different spreadsheets or worksheets simultaneously.$orders = new Helper(); $orders->setSpreadsheetId('spreadsheet-a'); $orders->setWorksheetName('Orders'); $inventory = new Helper(); $inventory->setSpreadsheetId('spreadsheet-b'); $inventory->setWorksheetName('Stock');
License
MIT License. See LICENSE for details.
Questions & Issues
Found a bug or have a suggestion? Open an issue.
Author
Renan Diaz — Working with PHP since 2017 & Google's API since 2019.
reandimo/google-sheets-helper 适用场景与选型建议
reandimo/google-sheets-helper 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 811 次下载、GitHub Stars 达 1, 最近一次更新时间为 2022 年 02 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「excel」 「spreadsheet」 「google」 「sheet」 「spreadsheet helper」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 reandimo/google-sheets-helper 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 reandimo/google-sheets-helper 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 reandimo/google-sheets-helper 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
This Symfony bundle integrates PhpSpreadsheet into Symfony using Twig.
PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
Yii2 export extension
PHP Excel Library
PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
统计信息
- 总下载量: 811
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-02-18