2016-05-14 10 views
1

Googleシートからユーザー名と拡張子の両方を取得し、週に1回メールでユーザーに送信する必要があります。私は非常に控えめな解決策を書いてきました。私はそれが実質的によく書かれたループといくつかの論理で減らすことができると確信しています。私は正しい方向に何かを軽く感謝します。私はプログラミングの知識がないので、この2日前に作業を始めましたので、明白な事実を許してください!ライブGoogleシートからデータを取り出してメールで送信する

EMAIL問題: すべての件名にrow_number([3])+ 'obfuscated.com'を入れて、すべての本文にrow_number([1])を挿入する必要があります。

EDIT:わかりやすくするために、手作業で各行変数に手動で書き込んだだけです。ユーザーの数は毎週変更されていますが、それ以上のことはしません。

import gspread 
import json 
from oauth2client.service_account import ServiceAccountCredentials 
json_key = json.load(open('obfuscated')) 
scope = ['https://spreadsheets.google.com/feeds'] 
credentials =  ServiceAccountCredentials.from_json_keyfile_name('obfuscated.json', 
scope) 
gc = gspread.authorize(credentials) 

sh = gc.open_by_key('obfuscated') 
worksheet = sh.get_worksheet(0) 


row_1 = worksheet.row_values(2) 
print(row_1[3]+'@obfuscated') 
print(row_1[1]) 

row_2 = worksheet.row_values(3) 
print(row_2[3]+'@obfuscated') 
print(row_2[1]) 

ごめんなさい - ここで.CSV https://www.dropbox.com/s/i5p3m32m2huiffr/example-march.csv?dl=0

@Racialzだ - 私は私が挿入できる変数として「@ obfuscated.com」を付加し、個人的な拡張子の両方のユーザー名を必要とするだろう多くの電子メール。

+0

スプレッドシートの表示方法を教えてください。明らかにいくつかの偽のデータを使用しますが、あなたの実際のデータとまったく同じ形式です。また、このスプレッドシートから見たい出力の例を示してください – Keatinge

+0

あなたは私を冗談にしなければなりません...スプレッドシートの画像を真剣に投稿しました。スプレッドシートを公開したり、どこかにアップロードしたりしてください。あるいは、csvとしてエクスポートして、ここに平文を投稿してください。本当に写真以外のものは何でも – Keatinge

答えて

1

ここでは、最終的にデータを使用して設定を取得し、gspreadで使用するoauthを設定するのは永遠に必要ですが、その後は非常に簡単です。

currentRow = 2 
while 1: 
    thisRow = worksheet.row_values(currentRow) 

    if (thisRow[1] == ""): 
     break 

    username = thisRow[3] + "@obfuscated.com" 
    personalExtension = thisRow[1] 

    #email sending code goes here 
    print(username, personalExtension) 
    currentRow += 1 

あなただけの個人的な拡張のためのインデックス[1]でユーザ名とアイテムのインデックス[3]にある項目を取得します。それは個人的な拡張子のない行に当たるまでループします。これは任意の数の電子メールで動作します。

+0

あなたは大歓迎です。ちょうど興味深い、あなたの元の番号がハードコーディングされた場所は何行ですか? – Keatinge

関連する問題