質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

0回答

369閲覧

PythonでGoogleSheetの追記の場所を指定したい。

serum_oishi

総合スコア10

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

1クリップ

投稿2018/03/18 23:41

編集2022/01/12 10:55

ローカルからcsvデータをGoogleSpreadシートに追記したいと思い、
以下のサイトを参考に実装しました。

参考サイト

手順は、

1.最初は、API用の認証キーを取り
2.pythonコード内で、認証をおこなう
3.pythonを実行する
↓(ID以外は、まるまるコピペになります。)

#!/usr/bin/env python # coding:utf-8 from apiclient import discovery import oauth2client import httplib2 import argparse import csv import sys SPREADSHEET_ID = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' RANGE_NAME = 'A1' MAJOR_DIMENSION = 'ROWS' CLIENT_SECRET_FILE = 'client_secret.json' CREDENTIAL_FILE = "./credential.json" APPLICATION_NAME = 'CSV Appender' store = oauth2client.file.Storage(CREDENTIAL_FILE) credentials = store.get() if not credentials or credentials.invalid: SCOPES = 'https://www.googleapis.com/auth/spreadsheets' flow = oauth2client.client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES) flow.user_agent = APPLICATION_NAME args = '--auth_host_name localhost --logging_level INFO --noauth_local_webserver' flags = argparse.ArgumentParser(parents=[oauth2client.tools.argparser]).parse_args(args.split()) credentials = oauth2client.tools.run_flow(flow, store, flags) http = credentials.authorize(httplib2.Http()) discoveryUrl = ('https://sheets.googleapis.com/$discovery/rest?' 'version=v4') service = discovery.build('sheets', 'v4', http=http, discoveryServiceUrl=discoveryUrl) resource = service.spreadsheets().values() parser = argparse.ArgumentParser() parser.add_argument('infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin) args = parser.parse_args(sys.argv[1:]) r = csv.reader(args.infile) # read whole csv data data = list(r) body = { "range": RANGE_NAME, "majorDimension": MAJOR_DIMENSION, "values": data } resource.append(spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME, valueInputOption='USER_ENTERED', body=body).execute()

この手順通り無事に認証も終え、
行の下に追記は出来ました。

ただ、少々欲が出てしまい、
下に追記してしまう」のを、

下に追記する
横に追記したい」と思いました。

横に追記したい
その際は上のコードにどう記述していけばよいのでしょうか。

個人的に、

r = csv.reader(args.infile) data = list(r) body = { "range": RANGE_NAME, "majorDimension": MAJOR_DIMENSION, "values": data } resource.append(spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME, valueInputOption='USER_ENTERED', body=body).execute()

ここをいじればいいのかなと思っていたのですが、
少々難しく。。。

Googleのspreadsheets.values/appendについてのサイト

上のようなコードにこれをどう使えばいいのかどうしてもわからず、
ご質問させていただきました。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問