exs / googlesheets-bundle
此包通过 Google API 管理谷歌电子表格的表操作。
Requires
- php: >=5.3.9
- google/apiclient: ^2.0
- symfony/symfony: ^2.7
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.7
- phpstan/phpstan: ^0.8.5
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2024-08-29 04:48:31 UTC
README
Google 电子表格集成的非常简单的包装器
这个包做了什么?
此包提供基本 Google API 电子表格服务方法作为 Symfony 服务。
方法:获取|创建|更新|清除|删除
在 Symfony 项目中安装 # EXS-GoogleSheetsBundle
编辑 composer.json 文件
//composer.json //... "require": { //other bundles "exs/googlesheets-bundle": "^0.1" },
保存文件,并通过命令行使用 composer 需求项目
composer require exs/simple-mongo-bundle
更新 app/AppKernel.php
//app/AppKernel.php //... public function registerBundles() { $bundles = array( //Other bundles new EXS\GoogleSheetsBundle\EXSGoogleSheetsBundle(), );
使用方法
配置
-
设置您的 Google 项目并获取客户端密钥文件。
点击此处获取您的客户端密钥并设置项目应用程序名称 -
将您的客户端密钥文件保存为项目中的 'client_secret.json'。
-
在 Symfony 配置文件中添加客户端密钥文件位置、项目应用程序名称和凭证位置
exs_google_sheets: application_name: 'Google Sheets API' credentials: '%kernel.root_dir%/config/sheets.googleapis.com.json' client_secret: '%kernel.root_dir%/config/client_secret.json'
设置文件位置后,包将创建您的凭证。
默认位置:'/Credentials/sheets.googleapis.com.json'
创建访问令牌
为 Google API 创建访问令牌。
- 通过命令行执行服务。
该服务将为您提供获取验证码的链接。
app/console googlesheets:execute --function=token
- 从链接中复制验证码,然后将其输入到命令行中。
输入
id: 电子表格 ID
title: 工作表(选项卡)标题
header: 标题行数。
data: 网格数据的二维数组。
$data = [ [ COL1_HEADER, COL2_HEADER, ...], [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ...], [ ROW1COL2_CELL_VALUE, ROW2COL2_CELL_VALUE, ...], .... ];
方法
SETUP(所有方法通用)。
注入 GoogleSheetsApiService 或从容器中获取它。
示例:使用要管理的电子表格 ID 设置 api 客户端。
$service = $this->getContainer()->get('exs_google_sheets.sheets_service'); $service->setSheetServices(YOUR_SPREADSHEETS_ID_HERE);
GET
获取现有电子表格
$spreadsheets = $service->getGoogleSpreadSheets();
CREATE
在 Google 电子表格中创建新工作表。
返回:插入到新工作表中的数据行数。
如果您在没有任何数据的情况下调用函数,它将创建一个空的工作表。
示例:创建具有数据的新工作表
$sheetTitle = 'my test sheet'; $data = [ [ COL1_HEADER, COL2_HEADER, ...], [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ...], .... ]; $response = $service->createNewSheet($sheetTitle, $data);
UPDATE
更新现有电子表格的工作表。
返回:更新到工作表中的数据行数。
如果您只想更新单元格值,而不是标题,请定义标题行数。
示例:仅更新网格数据值。
$header = 1; $sheetTitle = 'my test sheet'; $data = [ [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ...], [ ROW2COL1_CELL_VALUE, ROW2COL2_CELL_VALUE, ...], .... ]; $response = $service->updateSheet($sheetTitle, $data, $header);
CLEAR
清除整个工作表的值。
返回:清除的行数。
$sheetTitle = 'my test sheet'; $response = $service->clearSheetByTitle($sheetTitle);
DELETE
删除电子表格中的现有工作表。
返回:布尔值
$sheetTitle = 'my test sheet'; $response = $service->deleteSheetByTitle($sheetTitle);
示例
创建带有标题的新工作表,然后用数据更新它
// setup the service $service = $this->getContainer()->get('exs_google_sheets.sheets_service'); $service->setSheetServices(YOUR_SPREADSHEETS_ID_HERE); // create the sheet $sheetTitle = 'my test sheet'; $data = [ [ COL1_HEADER, COL2_HEADER, COL3_HEADER] ]; $service->createNewSheet($sheetTitle, $data); // update grid data $header = 1; $data = [ [ ROW1COL1_CELL_VALUE, ROW1COL2_CELL_VALUE, ROW1COL3_CELL_VALUE], [ ROW2COL1_CELL_VALUE, ROW2COL2_CELL_VALUE, ROW2COL3_CELL_VALUE], [ ROW3COL1_CELL_VALUE, ROW3COL2_CELL_VALUE, ROW3COL3_CELL_VALUE], [ ROW4COL1_CELL_VALUE, ROW4COL2_CELL_VALUE, ROW4COL3_CELL_VALUE] ]; $service->updateSheet($sheetTitle, $data, $header);
贡献
任何人都可以贡献。
如果您有任何问题或建议,请告诉我们。