exs / googlesheets-bundle

此包通过 Google API 管理谷歌电子表格的表操作。

v0.2.1 2018-05-02 19:49 UTC

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(),
);

使用方法

配置

  1. 设置您的 Google 项目并获取客户端密钥文件。
    点击此处获取您的客户端密钥并设置项目应用程序名称

  2. 将您的客户端密钥文件保存为项目中的 'client_secret.json'。

  3. 在 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 创建访问令牌。

  1. 通过命令行执行服务。
    该服务将为您提供获取验证码的链接。
app/console googlesheets:execute --function=token
  1. 从链接中复制验证码,然后将其输入到命令行中。

输入

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);

贡献

任何人都可以贡献。

如果您有任何问题或建议,请告诉我们