Google sheets 如何制作一个生成动态谷歌表单的flask网站

Google sheets 如何制作一个生成动态谷歌表单的flask网站,google-sheets,google-sheets-api,xlsxwriter,google-sheets-formula,Google Sheets,Google Sheets Api,Xlsxwriter,Google Sheets Formula,我正在帮助一个组织,他们希望有一个网站,你可以在其中输入一些数字,并且应该出现一个Google Sheets链接,在该链接中,数字被输入到某种公式中以给出结果(即,如果你输入5,5,3;(Num1+Num2)*num3它将显示一个表格,其中前两个数字相加,然后乘以第三个: Num1 Num2 Num2 Result 5 5 3 30 我搜索过GitHub和internet,但我似乎找不到一个库,它可以从网站创建一个Google表单,并将给定的数

我正在帮助一个组织,他们希望有一个网站,你可以在其中输入一些数字,并且应该出现一个Google Sheets链接,在该链接中,数字被输入到某种公式中以给出结果(即,如果你输入
5,5,3;(Num1+Num2)*num3
它将显示一个表格,其中前两个数字相加,然后乘以第三个:

Num1    Num2     Num2  Result
5       5        3     30
我搜索过GitHub和internet,但我似乎找不到一个库,它可以从网站创建一个Google表单,并将给定的数据输入到公式中。我找到的大多数内容都使用gsheet API,只修改了现有表单。我找到了一个Python(Flask)图书馆打电话给我,我想知道是否有办法将
.xlsx
转换成在线谷歌表单,或者如果可能的话,从我的网站上制作一份谷歌表单

(我的网站目前在Flask中,但实际上我没有后端。如果有人知道某个库位于另一个web框架中,我愿意切换。)


谢谢你,John D

也许我在这里遗漏了一些东西,但是常规的Google Sheets API(可用于Python)允许你创建带有指定标题的空白电子表格

spreadsheet = {
    'properties': {
        'title': title
    }
}
spreadsheet = service.spreadsheets().create(body=spreadsheet,
                                    fields='spreadsheetId').execute()
print('Spreadsheet ID: {0}'.format(spreadsheet.get('spreadsheetId')))
以下是基于Google Quickstarts示例的更完整示例:

from __future__ import print_function
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

# If modifying these scopes, delete the file token.pickle! Adjust scopes as needed
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']


def main():
    creds = None
    # The file token.pickle stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)

    service = build('sheets', 'v4', credentials=creds)

    # Call the Sheets API

    spreadsheet = {
        'properties': {
            'title': 'New Test Sheet 2'
        }
    }
    spreadsheet = service.spreadsheets().create(body=spreadsheet,
                                        fields='spreadsheetId').execute()
    #print('Spreadsheet ID: {0}'.format(spreadsheet.get('spreadsheetId')))
    spreadsheet_id = spreadsheet.get('spreadsheetId')

    range_name = 'Sheet1!A1:D5'
    body = {
        "majorDimension": "ROWS",
        "values": [
            ["Item", "Cost", "Stocked", "Ship Date"],
            ["Wheel", "$20.50", "4", "3/1/2016"],  # new row
            ["Door", "$15", "2", "3/15/2016"],
            ["Engine", "$100", "1", "30/20/2016"],
            ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
        ],
    }
    result = service.spreadsheets().values().update(
        spreadsheetId=spreadsheet_id,
        range=range_name,
        body=body,
        valueInputOption='USER_ENTERED'
    ).execute()
    print(result)

if __name__ == '__main__':
    main()