次は、ワークシートのメタ情報の更新です。具体的には、ワークシートの名前や行数、列数を更新できます。サンプルのWorksheetUpdate.javaを実行すると、先ほど追加した「てすと」ワークシートのメタ情報を以下のように更新できます。
また、WorksheetUpdateの中で「SpreadsheetUtil」というクラスを利用していますが、これは今回のサンプル用に作成したユーティリティクラスです。そのためSpreadsheetUtil.javaもコピーしてください。コピーが終わったら、getSpreadsheetServiceメソッド内のusernameとpassword変数に自分のメールアドレスとパスワードを設定してください。
実行すると「テスト」ワークシートの名前が「更新」になり、行数と列数が減っていると思います。ワークシート名が変わらない場合は、画面を再読み込みしてください。
コードから抜粋して解説します。
// ワークシートのメタ情報を更新 worksheetEntry.setTitle(new PlainTextConstruct("更新")); worksheetEntry.setRowCount(5); worksheetEntry.setColCount(2); worksheetEntry = worksheetEntry.update(); System.out.println("ワークシートのメタ情報の更新が完了しました。");
メタ情報を更新するには、更新対象のWorksheetEntryのsetterを利用して更新したい情報を設定します。その後、WorksheetEntryのupdateメソッドを実行すると、ワークシートのメタ情報が更新されます。また、注意点としては、以下が挙げられます。
実行すると「テスト」ワークシートの名前が「更新」になり、行数と列数が減っていると思います。ワークシート名が変わらない場合は、画面を再読み込みしてください。
最後に、ワークシートの削除です。以下の「WorksheetDelete.java」を実行すると、先ほど更新した「更新」ワークシートを削除できます。WorksheetDelete.javaをコピーして実行してください。「ワークシート操作」スプレッドシートから「更新」ワークシートが削除されていると思います。
package sample; import com.google.gdata.client.spreadsheet.SpreadsheetService; import com.google.gdata.data.spreadsheet.SpreadsheetEntry; import com.google.gdata.data.spreadsheet.WorksheetEntry; public class WorksheetDelete { public static void main(String[] args) throws Exception { // 操作対象のワークシートを取得 SpreadsheetService service = SpreadsheetUtil.getSpreadsheetService(); SpreadsheetEntry spreadsheetEntry = SpreadsheetUtil.findSpreadsheet( service, "ワークシート操作"); WorksheetEntry worksheetEntry = SpreadsheetUtil.findWorksheet( spreadsheetEntry, "更新"); // ワークシートを削除 worksheetEntry.delete(); System.out.println("ワークシートの削除が完了しました。"); } }
ワークシートを削除するには削除対象のWorksheetEntryを取得し、そのWorksheetEntryのdeleteメソッドを実行するだけです。
SpreadsheetEntryクラスのgetDefaultWorksheetメソッドでは、デフォルトワークシートを取得できます。この「デフォルトワークシート」とはスプレッドシートの左端のワークシートを指します。そのため、デフォルトワークシートを変更したい場合は対象のワークシートを左端まで移動してください。
なお、現時点でAPI経由ではワークシートを左右に移動できないようです。
まずは、行の追加です。「行単位でのデータ操作」という名前のスプレッドシートを作ってください。作り終えたら、1行目の各セルに「名称」「数量」「価格」と入力してください。
このワークシートにAPIを使って、以下のように2行分のデータを追加します。
では、実際に追加してみましょう。サンプルの「ListAdd.java」をコピーして実行してください。2行分のデータが追加されていると思います。
コードから抜粋して解説します。
// 行を追加 ListEntry listEntry; listEntry = new ListEntry(); listEntry.getCustomElements().setValueLocal("名称", "りんご"); listEntry.getCustomElements().setValueLocal("数量", "1"); listEntry.getCustomElements().setValueLocal("価格", "100"); service.insert(worksheetEntry.getListFeedUrl(), listEntry);
行を追加するにはワークシートの追加と同様にSpreadsheetServiceのinsertメソッドを利用します。第1引数は、行を操作する際のURLです。第2引数はListEntryのインスタンスで、このインスタンスにあらかじめカラム名とその値をペアにして設定しておく必要があります。カラム名はワークシートの1行目の各セルの値が利用されます。
なお、注意点としては、以下が挙げられます。
カラム名の仕様については、「gsx namespace element reference」を参照してください。なお筆者が試したところ、半角空白だけでなく全角空白についても削除する必要がありました。
次ページでは、行単位でデータを更新・削除する方法やListEntryを取得する3つの方法を解説します。
Copyright © ITmedia, Inc. All Rights Reserved.