如何获得一个还不存在的Google sheet ID?

How to get a Google sheet ID which doesn’t exist yet?

我有一个 Google 工作sheet,我正在用它做枢轴 tables。 我想在尚不存在的新 sheet 中添加枢轴 tables(14)(sheet 的一个枢轴 table),在相同的传播sheet。 目前我正在创建新的 sheets 并手动恢复它们的 ID。我希望它是自动的。 这是我的支点 table :

    request_body = {
        "requests" : [
            {
                "addSheet": {
                    'properties': {
                        'title': 'test',
                        'tabColor' : {
                            'red' : 0.44,
                            'green' : 0.99,
                            'blue' : 0.50
                        },
                    }
                },
            }
        ],
        "sheets":[{
            'data': [{
                "rowData" : {
                    "values" : [
                        {
                            "pivotTable" : {
                                #Data Source
                                "source" : {
                                    "sheetId": "0",
                                    "startRowIndex" : 0,
                                    "startColumnIndex" : 0,
                                },
                                #Row Field(s)
                                "rows" : [ 
                                    #field 2
                                    {
                                        "sourceColumnOffset" : 5, #Type Preneur
                                        "showTotals" : False,
                                        "sortOrder" : "ASCENDING"
                                    },
                                    #field 3
                                    {
                                        "sourceColumnOffset" : 3, #Enseigne
                                        "showTotals" : False,
                                        "sortOrder" : "ASCENDING"
                                    }
                                ],
                                #Columns Field(s)
                                "columns" : [
                                    #Field 1
                                    {
                                        "sourceColumnOffset" : 6, #Nature impayés
                                        "sortOrder" : "ASCENDING", 
                                        "showTotals" : False
                                    },
                                    #Field 2
                                    {
                                        "sourceColumnOffset" : 18, #Année
                                        "sortOrder" : "ASCENDING",
                                        "showTotals" : True
                                    },
                                    #Field 3
                                    {
                                        "sourceColumnOffset" : 19, #Item - Entry Type
                                        "sortOrder" : "ASCENDING",
                                        "showTotals" : False  
                                    }
                                ],
                                "criteria" : {
                                    6:{
                                        'visibleValues' : ['Solde Créditeur']
                                    },
                                    19:{
                                        'visibleValues' : [
                                            'DEPRD', 'DEPRE', 'ECHEA', 'FACTU'
                                        ]
                                    },
                                    5: {
                                        'visibleValues' : [
                                            "Inconnu", "Indépendant","Antenne / Wifi", "SL", "Franchisé", "Ephémère", "Copro", "Carrefour", "-"
                                        ]
                                    },
                                },                                        
                                #Values Field(s)
                                "values" : [
                                    {
                                        "sourceColumnOffset" : 21, #PNS BRUT PPSO
                                        "summarizeFunction" : "SUM",
                                        "name" : ""
                                    }
                                ],
                                "valueLayout" : "HORIZONTAL"
                            }
                        }
                    ],
                    'dataSourceId' : id_fichier
                },
                'fields' : 'pivotTable'
            }]
        }]
    }

    #Ecriture du 1er TCD
    response = service_sheet.spreadsheets().batchUpdate(
        spreadsheetId = Id_fichier_source,
        body = request_body
    ).execute()

你有什么想法吗?

您可以使用 spreadsheets().create() 方法轻松创建新的点差sheet。

一个example:

spreadsheet = {'properties': {'title': "Testing-01"}}
spreadsheet = ss_service.spreadsheets().create(body=spreadsheet,
                                            fields='spreadsheetId').execute()
ss_id = spreadsheet.get('spreadsheetId')
print('Spreadsheet ID: {0}'.format(ss_id))

之后,您只需将生成的 ID 添加到您的函数中

更新

您可以使用 addSheets 请求将新的 sheet 添加到现有的 Spreadsheet。请注意,您设置了自己的 ID,以便以后可以引用它。

因此,步骤将是:

  1. 创建并获取 Spreadsheets 的 ID。
  2. 使用 AddSheet 方法创建所有需要的新选项卡。为每个新添加的 sheet 设置一个 ID。
  3. updateCells > range > sheetID.
  4. 中设置这些 ID

作为参考,您可以使用这些examples

文档: