1

ヘッダー行の値をスペースなしで小文字にするという制限を課さないGoogleSpreadsheetAPIを使用する方法(読み取り:ハック)があるかどうか疑問に思いました。セルベースのフィードを利用できることは承知していますが、特定の列名に対応する列番号を追跡する必要があるアプリケーションのオーバーヘッドが発生します。

誰かが別の手段を持っていますか?

(また、 Google Spreadsheet API Docsがヘッダー行名の制限について言及していないことに気づきました。コードが最初に機能しなかった理由を見つけるために、周りを検索する必要がありました)

4

2 に答える 2

7

スプレッドシートのヘッダーを実際に変更したり、いくつかの制限に屈したりする必要はありません。基本的に、API はヘッダーを「小文字のスペースなし」形式に変換し、そのままアクセスできるようにします。したがって、ヘッダー「My Header」を持つ列にアクセスしようとすると、列「myheader」を照会することで機能します。元のスプレッドシートのヘッダーは変更されず、目的の形式のままです。

于 2012-07-23T01:44:41.197 に答える
2
#header_names = list of header names
spreadclient = gdata.spreadsheets.client.SpreadsheetsClient(source='Your App Name')

#Add a line to authenticate the spreadsheet client

spreadsheet_key = spreadsheet.GetId().split("%3A")[1]
worksheets = spreadclient.GetWorksheets(spreadsheet_key)
#get worksheet id
wsid =  worksheets.entry[0].GetWorksheetId()
#header row can only be accessed via cellfeed
for i,name in enumerate(header_names):
    cellentry= spreadclient.GetCell(spreadsheet_key, worksheet_id=wsid, row_num=1, col_num=1+i)
    #update value
    cellentry.cell.input_value = name #TODO: do batch update instead
    spreadclient.update(cellentry)
于 2012-10-14T11:54:23.490 に答える