2016-12-20 16 views
2

スプレッドシート全体をコピーしようとしていますが、そうするapiはないと思います。GoogleシートApi:Googleスプレッドシートをコピー

基本的に、私は次の操作を実行しようとしています:

  • は、私は小さな変更を複製したいスプレッドシートを持っています。
  • 新しいスプレッドシートを作成する

しかし無事に動作し、スプレッドシートからコピーシートは」doesnの(スプレッドシートのコピーがはるかに効率的であったであろう)いずれかで新しいスプレッドシート1にテンプレートからすべてのシートをコピーし、新しいスプレッドシートを作成します。仕事。

は、2つの方法を試してみました:

角度:

$http.post("https://sheets.googleapis.com/v4/spreadsheets/"+fromSpreadsheetId+"/sheets/"+fromSheetId, 
          {headers: { 
         'Authorization': 'Bearer ' + this.oauthToken 
        }}, 

は、次のエラーを与える:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin'

GoogleのシートのAPIコール:

gapi.client.sheets.spreadsheets.sheets.copyTo({spreadsheetId: fromSpreadsheetId , sheetId: fromSheetId},{destinationSpreadsheetId: destinationSpreadsheetId}); 

リクエストはエラーなしで処理されます。ただし、新しく作成されたスプレッドシートにはコピーされたシートはありません。

+0

コードに起因する問題について質問するときに、人々が問題を再現するために使用できるコードを提供すれば、より良い回答が得られます。 "それは動作しません"問題文ではありません。期待される行動がどうあるべきか教えてください。エラーメッセージの正確な表現と、それをどのコード行で生成しているかを教えてください。質問のタイトルに問題の概要を記入してください。 – georgeawg

+0

@georgeawg質問を編集してより明確にしました。 –

+0

[CORSを使用してGoogle APIにアクセスする方法](https://developers.google.com/api-client-library/javascript/features/cors)を参照してください。 – georgeawg

答えて

3

別の問題があるため、CORSの問題について別の質問をすることをお勧めします。

1)ドライブAPIのfiles.copyメソッドを使用します。

「スプレッドシートをコピー」に関して

、次の2つのオプションがあります。ドライブAPIのfileIdは、スプレッドシートAPIのspreadsheetIdと同等です。

2)コピーする「テンプレート」スプレッドシートは使用しないでください。代わりに、シートAPIのspreadsheets.createメソッドを使用します。 spreadsheets.getを使用して「テンプレート」JSONを取得し、必要に応じて新しいスプレッドシートを作成する前にそれを調整することができます。

関連する問題