⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indexclient.java

📁 google的gdata api包
💻 JAVA
字号:
/* Copyright (c) 2006 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package sample.spreadsheet;import com.google.gdata.data.Person;import com.google.gdata.client.spreadsheet.SpreadsheetService;import com.google.gdata.client.spreadsheet.FeedURLFactory;import com.google.gdata.client.spreadsheet.CellQuery;import com.google.gdata.data.Feed;import com.google.gdata.data.spreadsheet.SpreadsheetFeed;import com.google.gdata.data.spreadsheet.CellFeed;import com.google.gdata.data.Entry;import com.google.gdata.data.spreadsheet.SpreadsheetEntry;import com.google.gdata.data.spreadsheet.WorksheetEntry;import com.google.gdata.data.spreadsheet.CellEntry;import com.google.gdata.data.spreadsheet.Cell;import sample.util.SimpleCommandLineParser;import java.net.URL;import java.util.List;import java.util.ArrayList;/** * An application that serves as a sample to show how the SpreadhseetService * can be used to obtain an index of spreadsheets with author and worksheets. * *  */public class IndexClient {  private SpreadsheetService service;  private FeedURLFactory factory;  /**   * Creates a client object for which the provided username and password   * produces a valid authentication.   *   * @param username the Google service user name   * @param password the corresponding password for the user name   * @throws Exception if error is encountered, such as invalid username and   * password pair   */  public IndexClient(String username, String password) throws Exception {    factory = FeedURLFactory.getDefault();    service = new SpreadsheetService("gdata-sample-spreadhsheetindex");    service.setUserCredentials(username, password);  }  /**   * Retrieves the spreadsheets that the authenticated user has access to.   *   * @return a list of spreadsheet entries   * @throws Exception if error in retrieving the spreadsheet information   */  public List<SpreadsheetEntry> getSpreadsheetEntries() throws Exception {    SpreadsheetFeed feed = service.getFeed(        factory.getSpreadsheetsFeedUrl(), SpreadsheetFeed.class);    return feed.getEntries();  }  /**   * Retrieves the worksheet entries from a spreadsheet entry.   *   * @param spreadsheet the spreadsheet entry containing the worksheet entries   * @return a list of worksheet entries   * @throws Exception if error in retrieving the spreadsheet information   */  public List<WorksheetEntry> getWorksheetEntries(SpreadsheetEntry spreadsheet)      throws Exception {    return spreadsheet.getWorksheets();  }  /**   * Retrieves the columns headers from the cell feed of the worksheet   * entry.   *   * @param worksheet worksheet entry containing the cell feed in question   * @return a list of column headers   * @throws Exception if error in retrieving the spreadsheet information   */  public List<String> getColumnHeaders(WorksheetEntry worksheet)      throws Exception {    List<String> headers = new ArrayList<String>();    // Get the appropriate URL for a cell feed    URL cellFeedUrl = worksheet.getCellFeedUrl();    // Create a query for the top row of cells only (1-based)    CellQuery cellQuery = new CellQuery(cellFeedUrl);    cellQuery.setMaximumRow(1);    // Get the cell feed matching the query    CellFeed topRowCellFeed = service.query(cellQuery, CellFeed.class);    // Get the cell entries fromt he feed    List<CellEntry> cellEntries = topRowCellFeed.getEntries();    for (CellEntry entry : cellEntries) {      // Get the cell element from the entry      Cell cell = entry.getCell();      headers.add(cell.getValue());    }    return headers;  }  /**   * Prints the usage of this application.   */  private static void usage() {    System.out.println("Usage: java IndexClient --username [user] " +        "--password [pass] [--authors] [--worksheets] [--headers]");    System.out.println("\nA simple application that uses the provided Google\n"        + "Account username and password to create\n"        + "an index of the user's spreadsheets against\n"        + "the user's Google Spreadsheet account.\n");  }  /**   * Main entry point.  Parses arguments and creates and invokes the   * IndexClient.   */  public static void main(String[] args) throws Exception {    SimpleCommandLineParser parser = new SimpleCommandLineParser(args);    String username = parser.getValue("username", "user", "u");    String password = parser.getValue("password", "pass", "passwd", "pw", "p");    boolean help = parser.containsKey("help", "h");    if (help || (username == null) || (password == null)) {      usage();      System.exit(1);    }    boolean author = parser.containsKey("author", "a");    boolean columns = parser.containsKey("headers", "header", "h");    boolean worksheets = parser.containsKey("worksheets", "worksheet", "w");    IndexClient client = new IndexClient(username, password);    for (SpreadsheetEntry spreadsheet : client.getSpreadsheetEntries()) {            System.out.print(spreadsheet.getTitle().getPlainText());      if (author) {        for (Person person : spreadsheet.getAuthors()) {          System.out.println(" - " + person.getName());        }      } else {        System.out.println();      }  //authors (or not)      if (worksheets || columns) {        List<WorksheetEntry> entries = client.getWorksheetEntries(spreadsheet);        for (WorksheetEntry worksheet : entries) {          System.out.println("\t" + worksheet.getTitle().getPlainText());          if (columns) {            List<String> headers = client.getColumnHeaders(worksheet);            for (String header : headers) {              System.out.println("\t\t" + header);            }          }  // columns        }      }  // worksheets    }  // spreadsheets      }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -