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

📄 importclient.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.client.spreadsheet.SpreadsheetService;import com.google.gdata.client.spreadsheet.FeedURLFactory;import com.google.gdata.client.spreadsheet.SpreadsheetQuery;import com.google.gdata.client.spreadsheet.WorksheetQuery;import com.google.gdata.data.spreadsheet.SpreadsheetFeed;import com.google.gdata.data.spreadsheet.WorksheetFeed;import com.google.gdata.data.spreadsheet.CellFeed;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.Link;import sample.util.SimpleCommandLineParser;import java.io.BufferedReader;import java.io.FileReader;import java.net.URL;import java.util.List;import java.util.regex.Pattern;/** * An application that serves as a sample to show how the SpreadsheetService  * can be used to import delimited text file to a spreadsheet. * *  */public class ImportClient {  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 ImportClient(String username, String password) throws Exception {    factory = FeedURLFactory.getDefault();    service = new SpreadsheetService("gdata-sample-spreadsheetimport");    service.setUserCredentials(username, password);  }  /**   * Gets the SpreadsheetEntry for the first spreadsheet with that name   * retrieved in the feed.   *   * @param spreadsheet the name of the spreadsheet   * @return the first SpreadsheetEntry in the returned feed, so latest   * spreadsheet with the specified name   * @throws Exception if error is encountered, such as no spreadsheets with the   * name   */  public SpreadsheetEntry getSpreadsheet(String spreadsheet)      throws Exception {          SpreadsheetQuery spreadsheetQuery         = new SpreadsheetQuery(factory.getSpreadsheetsFeedUrl());      spreadsheetQuery.setTitleQuery(spreadsheet);      SpreadsheetFeed spreadsheetFeed = service.query(spreadsheetQuery,           SpreadsheetFeed.class);      List<SpreadsheetEntry> spreadsheets = spreadsheetFeed.getEntries();      if (spreadsheets.isEmpty()) {        throw new Exception("No spreadsheets with that name");      }      return spreadsheets.get(0);  }  /**   * Get the WorksheetEntry for the worksheet in the spreadsheet with the   * specified name.   *   * @param spreadsheet the name of the spreadsheet   * @param worksheet the name of the worksheet in the spreadsheet   * @return worksheet with the specified name in the spreadsheet with the   * specified name   * @throws Exception if error is encountered, such as no spreadsheets with the   * name, or no worksheet wiht the name in the spreadsheet   */  public WorksheetEntry getWorksheet(String spreadsheet, String worksheet)       throws Exception {    SpreadsheetEntry spreadsheetEntry = getSpreadsheet(spreadsheet);    WorksheetQuery worksheetQuery      = new WorksheetQuery(spreadsheetEntry.getWorksheetFeedUrl());    worksheetQuery.setTitleQuery(worksheet);    WorksheetFeed worksheetFeed = service.query(worksheetQuery,        WorksheetFeed.class);    List<WorksheetEntry> worksheets = worksheetFeed.getEntries();    if (worksheets.isEmpty()) {      throw new Exception("No worksheets with that name in spreadhsheet "          + spreadsheetEntry.getTitle().getPlainText());    }    return worksheets.get(0);  }  /**   * Clears all the cell entries in the worksheet.   *   * @param spreadsheet the name of the spreadsheet   * @param worksheet the name of the worksheet   * @throws Exception if error is encountered, such as bad permissions   */  public void purgeWorksheet(String spreadsheet, String worksheet)       throws Exception {    WorksheetEntry worksheetEntry = getWorksheet(spreadsheet, worksheet);    CellFeed cellFeed = service.getFeed(worksheetEntry.getCellFeedUrl(),         CellFeed.class);    List<CellEntry> cells = cellFeed.getEntries();    for (CellEntry cell : cells) {      Link editLink = cell.getEditLink();      service.delete(new URL(editLink.getHref()));    }  }    /**   * Inserts a cell entry in the worksheet.   *   * @param spreadsheet the name of the spreadsheet   * @param worksheet the name of the worksheet   * @param row the index of the row   * @param column the index of the column   * @param input the input string for the cell   * @throws Exception if error is encountered, such as bad permissions   */  public void insertCellEntry(String spreadsheet, String worksheet,      int row, int column, String input) throws Exception {        URL cellFeedUrl = getWorksheet(spreadsheet, worksheet).getCellFeedUrl();    CellEntry newEntry = new CellEntry(row, column, input);    service.insert(cellFeedUrl, newEntry);  }  /**   * Prints the usage of this application.   */  private static void usage() {    System.out.println("Usage: java ImportClient --username [user] "        + "--password [pass] --filename [file] --spreadsheet [name] "        + "--worksheet [name] --delimiter [regex]");    System.out.println("\nA simple application that uses the provided Google\n"        + "Account username and password to locate the\n"        + "spreadsheet and worksheet in user's Google\n"        + "Spreadsheet account, and import the provided\n"        + "delimited text file into the worksheet.");   }  /**   * Main entry point. Parses arguments and creates and invokes the   * ImportClient.   */  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");    String filename = parser.getValue("filename", "file", "f");    String spreadsheet = parser.getValue("spreadsheet", "s");    String worksheet = parser.getValue("worksheet", "w");    String delimiter = parser.getValue("delimiter", "delimit", "d");    boolean help = parser.containsKey("help", "h");    if (help || (username == null) || (password == null)        || (spreadsheet == null) || (worksheet == null)         || (delimiter == null)) {      usage();      System.exit(1);    }    ImportClient client = new ImportClient(username, password);    client.purgeWorksheet(spreadsheet, worksheet);    Pattern delim = Pattern.compile(delimiter);       BufferedReader reader = null;    try {      reader = new BufferedReader(new FileReader(filename));      String line = reader.readLine();      int row = 0;      while (line != null) {              // Break up the line by the delimiter and insert the cells        String[] cells = delim.split(line, -1);          for (int col=0; col< cells.length; col++) {          client.insertCellEntry(spreadsheet, worksheet,               row+1, col+1, cells[col]);        }              // Advance the loop        line = reader.readLine();        row++;      }    } catch (Exception e) {      throw e;    } finally {      if (reader != null) {        reader.close();      }    }  }}

⌨️ 快捷键说明

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