Google Sheets API v4(Java)を使用して、
スプレットシートのシートを別のスプレットシートにコピーする方法
についてご紹介します。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Google Sheets API] Google Sheets API v4をJavaで操作する
を参照ください。
例:requests.add(moveDimension(sheetId)); //実行したいリクエストのMethodを指定
その他のGoogle Sheets APIは、下記の記事を参照ください。
⧉[Google Sheets API] JavaでスプレットシートのメニューとAPIを関連づけてみた
サンプル コード
コピー元のスプレットシートIDとシートIDを指定して、
コピー先のスプレットシートにコピーします。
実行
public static void main(String[] args) throws Exception {
String fileId = ""; //コピー元のスプレットシートID
Integer sheetId = 0; //コピー元のシートID";
String destFileId = ""; //コピー先のスプレットシートID
//コピー先のスプレットシートIDを設定
CopySheetToAnotherSpreadsheetRequest request = new CopySheetToAnotherSpreadsheetRequest();
request.setDestinationSpreadsheetId(destFileId);
Spreadsheets sheets = getSpreadsheets();
//コピーを実行
SheetProperties prop = sheets.sheets().copyTo(fileId, sheetId, request).execute();
//コピー実行のレスポンス
response(prop);
コピーの実行結果
コピーの実行後に得られるレスポンス情報を下記コードに示します。
下記は必ず取得できる情報です。
それ以外は設定されていない場合は取得できません。
内容 | 取得メソッド |
---|---|
コピーされたシートID | getSheetId() |
コピーされたシートのタイトル | getTitle() |
コピーされたシートの並び順 | getIndex() |
コピーされたシートの種別 | getSheetType() |
sheetTypeは、以下のいずれかが取得できます。
typeの種類によって取得できるレスポンスも異なります。
type | 内容 | 取得メソッド |
---|---|---|
GRID | GRID | getGridProperties() |
OBJECT | オブジェクト(グラフや画像など) | なし |
DATA_SOURCE | データソース(Bigqueryなど) | getDataSourceSheetProperties() |
private static void response(SheetProperties prop){
//コピーされたシートID
Integer sheetId = prop.getSheetId();
//コピーされたシートのタイトル
String title = prop.getTitle();
//コピーされたシートの並び順
Integer index = prop.getIndex();
//コピーされたシートの種別
String sheetType = prop.getSheetType();
//以下、設定されている場合のみ取得可能
//シートが非表示か?
Boolean hidden = prop.getHidden();
//タブの色、またはスタイル
Color tabColor = prop.getTabColor();
ColorStyle tabColorStyle = prop.getTabColorStyle();
//テキストの方向
Boolean rightToLeft = prop.getRightToLeft();
//sheetTypeが「GRID」の場合のみ
GridProperties grid = prop.getGridProperties();
//sheetTypeが「DATA_SOURCE」の場合のみ
DataSourceSheetProperties dataSourceSheetProperties = prop.getDataSourceSheetProperties();
}
おしまい。。